Intel oneAPI

    Table of contents

    Version as of 22:57, 28 Apr 2024

    to this version.

    Return to Version archive.

    View current version

    Installed oneAPI Base toolkit and oneAPI HPC toolkit on 9/2021 for test purposes. Installed on compute nodes, head nodes, Mark6'es.

    Base toolkit: Develop performant, data-centric applications across Intel® CPUs, GPUs, and FPGAs with this foundational toolset. HPC toolkit: Build, analyze, and scale applications across shared- and distributed-memory computing systems.

    For additional info from Intel see https://www.intel.com/content/www/us/en/developer/tools/oneapi/toolkits.html

    The installation under /opt/intel/oneapi/ provides its own Intel IPP, Intel MPI Library, Trace Analyzer and Collector, Intel VTune Profiler, and Intel compilers (CC: icc, CXX: icpc).

    Repository

    See Intel web pages. For CentOS on our cluster got a by default disabled /etc/yum.repos.d/oneAPI.repo with:

    [oneAPI]
    name=Intel® oneAPI repository
    baseurl=https://yum.repos.intel.com/oneapi
    enabled=0
    gpgcheck=1
    repo_gpgcheck=1
    gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
     
    This yum repo should be enabled only temporarily! There might be some Intel-customized RHEL7, CentOS packages on the repo that are not nice to get accidentally pulled as updates into the vlbi cluster.
    gxr -c "yum-config-manager --disable oneAPI" --group /hardware/nodes/mark6,/hardware/nodes/compute
     

    Environment

    Activate with:

    source /opt/intel/oneapi/setvars.sh
    

    For DiFX, the usual setup_difx script(s) should have:

    #!/bin/bash
    
    ## Get oneAPI environment
    # Prepare IPPROOT, CMPLR_ROOT, I_MPI_ROOT, ...
    if [[ "$I_MPI_ROOT" == "" ]]; then
            . /opt/intel/oneapi/setvars.sh
    fi
    if [[ "$IPPROOT" == "" ]]; then
            export IPPROOT=$ONEAPI_ROOT/lib/intel64/
    fi
    # Intel MPI
    export OPENMPIROOT=$I_MPI_ROOT
    # Intel Compilers
    # Note on icc, vs icpc, vs icx, vs icpx, vs icl: 
    #  https://software.intel.com/content/www/us/en/develop/articles/porting-guide-for-icc-users-to-dpcpp-or-icx.html
    export CC=icc
    export CXX=icpc
    export MPIXCC=${OPENMPIROOT}/bin/mpicxx
    export MPICXX=${OPENMPIROOT}/bin/mpicxx
    
    # Add Intel-libs path in case the current host has only the runtimes but not entire
    # devel toolkit installed; the automatic setvars.sh does not appear to cover that case
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/intel/oneapi/lib/intel64/
    
    ## Rest of DiFX setup
    # note: OpenMPI params in DIFX_MPIRUNOPTIONS and the OMPI_MCA_* env vars probably irrelevat for Intel MPI