Uploaded image for project: 'Data Management'
  1. Data Management
  2. DM-32516

Explore using the oneAPI compiler from Intel for building

    XMLWordPrintable

    Details

    • Type: Story
    • Status: Done
    • Resolution: Done
    • Fix Version/s: None
    • Component/s: lsst_distrib
    • Labels:
      None
    • Story Points:
      3
    • Team:
      Architecture
    • Urgent?:
      No

      Attachments

        Activity

        No builds found.
        wittgen Matthias Wittgen created issue -
        Hide
        wittgen Matthias Wittgen added a comment -

        Intel provides the oneAPI compiler icpx, icx in the intel conda channel and they can be installed on top of the lsst stack.
        eups packages that are not scons based use non uniform compiler flags
        As a proof of concept this was hacked by creating wrapper shell scripts invoking the intel compiler and adding extra flags.

        #!/bin/sh
        link=true
        extraflags1=""
        extraflags2=""
        prefix=$(dirname $(dirname $(which gcc )))
        if [ "$1" == "--version" ]
        then
          exec icx --version
        fi
         
        for arg in "$@"
        do
          if [[ "$arg" == -c  ]]
          then
            link=false
            break
          fi
         
        done
        if $link
        then
          extraflags1="-B$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0"
          extraflags2="-L$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0"
          extraflags3="-xCORE-AVX2 -fp-model=precise"
        else
          extraflags1="-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0"
          extraflags2="-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0/x86_64-conda-linux-gnu"
          extraflags3="-xCORE-AVX2 -fp-model=precise"
         
        fi
        echo icx $extraflags1 $extraflags2 $extraflags3 $@
        exec icx $extraflags1 $extraflags2 $extraflags3 $@
        

        Compilation requires to use floating point model -fp-model=precise
        lsst_dsitrib can be successfully compiled without any changes to the code.

        Show
        wittgen Matthias Wittgen added a comment - Intel provides the oneAPI compiler icpx , icx in the intel conda channel and they can be installed on top of the lsst stack . eups packages that are not scons based use non uniform compiler flags As a proof of concept this was hacked by creating wrapper shell scripts invoking the intel compiler and adding extra flags. #!/bin/sh link= true extraflags1= "" extraflags2= "" prefix=$( dirname $( dirname $( which gcc ))) if [ "$1" == "--version" ] then exec icx --version fi   for arg in "$@" do if [[ "$arg" == -c ]] then link= false break fi   done if $link then extraflags1= "-B$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0" extraflags2= "-L$prefix/lib/gcc/x86_64-conda-linux-gnu/9.4.0" extraflags3= "-xCORE-AVX2 -fp-model=precise" else extraflags1= "-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0" extraflags2= "-I$prefix/x86_64-conda-linux-gnu/include/c++/9.4.0/x86_64-conda-linux-gnu" extraflags3= "-xCORE-AVX2 -fp-model=precise"   fi echo icx $extraflags1 $extraflags2 $extraflags3 $@ exec icx $extraflags1 $extraflags2 $extraflags3 $@ Compilation requires to use floating point model -fp-model=precise lsst_dsitrib can be successfully compiled without any changes to the code.
        wittgen Matthias Wittgen made changes -
        Field Original Value New Value
        Status To Do [ 10001 ] In Progress [ 3 ]
        tjenness Tim Jenness made changes -
        Team Data Release Production [ 10301 ]
        wittgen Matthias Wittgen made changes -
        Resolution Done [ 10000 ]
        Status In Progress [ 3 ] Done [ 10002 ]
        yusra Yusra AlSayyad made changes -
        Epic Link PREOPS-1161 [ 1475339 ]
        Story Points 3
        tjenness Tim Jenness made changes -
        Team Data Release Production [ 10301 ] Architecture [ 10304 ]
        tjenness Tim Jenness made changes -
        Epic Link PREOPS-1161 [ 1475339 ]

          People

          Assignee:
          wittgen Matthias Wittgen
          Reporter:
          wittgen Matthias Wittgen
          Watchers:
          Matthias Wittgen
          Votes:
          0 Vote for this issue
          Watchers:
          1 Start watching this issue

            Dates

            Created:
            Updated:
            Resolved:

              Jenkins

              No builds found.