# Julia @ IN2P3-FR Computing center (CCINP3)

**URL:** https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813
**Category:** High Energy Physics
**Tags:** hep
**Created:** [November 25, 2022, 3:11pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813 "2022-11-25T15:11:16Z")
**Posts on this page:** 14
**Page:** 1

<div class="post-metadata">

### Author: ![grasph](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/grasph/32/25684_2.png) [@grasph](https://discourse.julialang.org/u/grasph)
#### Post date: [November 25, 2022, 3:11pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/1 "2022-11-25T15:11:16Z")

</div>

Hello,

We are working on setting up a Julia environment at the French IN2P3 computing center.

Note: These resources are available to HEP physicists from French institutes with an account at the center.

What is available now:

- Julia v1.7.0. To enable it, use the command `module add julia`. (A more recent version can be installed on-demand)

Note 1: to prevent the error when adding a package, set the environment variable JULIA\_DEPOT\_PATH to $HOME/.julia:/pbs/software/centos-7-x86\_64/julia/1.7.0/share .

```julia
export JULIA_DEPOT_PATH=$HOME/.julia:/pbs/software/centos-7-x86_64/julia/1.7.0/share

```

or

```julia
setenv JULIA_DEPOT_PATH $HOME/.julia:/pbs/software/centos-7-x86_64/julia/1.7.0/share

```

depending on your shell.

Note 2: Julia is also available from `cvmfs` by sourcing `/cvmfs/sft.cern.ch/lcg/views/LCG_101swan/x86_64-centos7-gcc10-opt/setup.sh`:

```julia
source /cvmfs/sft.cern.ch/lcg/views/LCG_101swan/x86_64-centos7-gcc10-opt/setup.sh

```

or

```julia
source /cvmfs/sft.cern.ch/lcg/views/LCG_101swan/x86_64-centos7-gcc10-opt/setup.csh

```

What we are working on:

- Adding Julia in Jupypter
- Installing wrapit and use it to interface Julia with ROOT

**This topic will be used for technical discussion on this effort and any other topic of interest for the Julia IN2P3/Irfu community.** The goal of the CCIN2P3 team is to provide us with the best possible environment for our needs.

Patrice Lebrun (IN2P3, COMET), Wilfrid Da Silva (IN2P3, COMET), Sébastien Gadrat (IN2P3, CMS/CC-INP3) and Philippe Gras (Irfu, CMS and CUPID)

---

<div class="post-metadata">

### Author: ![sebgadrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebgadrat/32/44633_2.png) [@sebgadrat](https://discourse.julialang.org/u/sebgadrat)
#### Post date: [November 28, 2022, 2:15pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/2 "2022-11-28T14:15:21Z")

</div>

Hi,

About testing WrapIt, I have installed Clang (together with LLVM v15.0.5, Clang being a sub-project of LLVM), compiled with gcc 9.3.1 (so fully compatible with C++17).

Environment setup can be done using module, as follow:  
$ module load Libraries/llvm/15.0.5

I did not try to compile code yet, so it may be necessary to add some PATH to properly find all the required includes. I will do some tests and update the modulefile (to set up the environment) as required.

Cheers.

---

<div class="post-metadata">

### Author: ![grasph](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/grasph/32/25684_2.png) [@grasph](https://discourse.julialang.org/u/grasph)
#### Post date: [November 28, 2022, 4:36pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/3 "2022-11-28T16:36:40Z")

</div>

Excellent. Thanks Sébastien. I confirm I can compile wrapit. A copy is in /pbs/home/p/pgras/public/bin/

Recipe to compile wrapit at CCINP3:

- Run `module add Libraries/llvm/15.0.5` and `module add cmake`
- Include the `-DClang_DIR=/pbs/software/centos-7-x86_64/llvm/15.0.5/lib/cmake/clang` option in the `cmake` command line.

We can eventually discuss if we want the `wrapit` executable installed centrally.

I have some troubles with the ROOT example of wrapit usage that does not behave as in the other places I’ve tested it, I will investigate.

Philippe.

---

<div class="post-metadata">

### Author: ![sebgadrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebgadrat/32/44633_2.png) [@sebgadrat](https://discourse.julialang.org/u/sebgadrat)
#### Post date: [November 28, 2022, 5:43pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/4 "2022-11-28T17:43:36Z")

</div>

Hi Philippe,

Glad it worked!

As you are several people interested in that software, I see no reason to not have it installed and available centrally. I can have a look and install it in the software area, and make a modulefile so it can be used using modules.

About ROOT, which version of it are you using? Is it a ROOT version installed here? I think only the latest ROOT version installed here, i.e. 6.26.10 is C++17 compliant (but the Clang version is not that new, i.e. 9.0.1 if I remember correctly).

---

<div class="post-metadata">

### Author: ![Olivier\_Merchiers](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/olivier_merchiers/32/4073_2.png) [@Olivier\_Merchiers](https://discourse.julialang.org/u/Olivier_Merchiers)
#### Post date: [November 28, 2022, 9:20pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/5 "2022-11-28T21:20:58Z")

</div>

Off topic, but great to hear about julia users in the Lyon area!

---

<div class="post-metadata">

### Author: ![PatriceLebrun](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patricelebrun/32/44599_2.png) [@PatriceLebrun](https://discourse.julialang.org/u/PatriceLebrun)
#### Post date: [November 29, 2022, 10:33am UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/6 "2022-11-29T10:33:48Z")

</div>

Thank you very much Sebastien an Philippe,

I just took 3 seconds to follow the procedure but I got the following errors.  
I suppose, I did not have the correct compiler.

cmake -DClang\_DIR=/pbs/software/centos-7-x86\_64/llvm/15.0.5/lib/cmake/clang …  
– The C compiler identification is GNU 4.8.5  
– The CXX compiler identification is GNU 4.8.5  
– Detecting C compiler ABI info  
– Detecting C compiler ABI info - done  
– Check for working C compiler: /usr/bin/gcc - skipped  
– Detecting C compile features  
– Detecting C compile features - done  
– Detecting CXX compiler ABI info  
– Detecting CXX compiler ABI info - done  
– Check for working CXX compiler: /usr/bin/c++ - skipped  
– Detecting CXX compile features  
– Detecting CXX compile features - done  
– Performing Test Terminfo\_LINKABLE  
– Performing Test Terminfo\_LINKABLE - Success  
– Found Terminfo: /usr/lib64/libtinfo.so  
– Found ZLIB: /usr/lib64/libz.so (found version “1.2.7”)  
– Found LibXml2: /usr/lib64/libxml2.so (found version “2.9.1”)  
– Configuring done  
CMake Error in CMakeLists.txt:  
Target “wrapit” requires the language dialect “CXX17” (with compiler  
extensions). But the current compiler “GNU” does not support this, or  
CMake does not know the flags to enable it.

– Generating done  
CMake Generate step failed. Build files cannot be regenerated correctly.

Patrice.

---

<div class="post-metadata">

### Author: ![grasph](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/grasph/32/25684_2.png) [@grasph](https://discourse.julialang.org/u/grasph)
#### Post date: [November 29, 2022, 10:51am UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/7 "2022-11-29T10:51:08Z")

</div>

Hello Patrice,

The command ` module add Libraries/llvm/15.0.5` should switch the compiler to 9.3.1. It is possible that cmake kept in cache the compiler it found in a previous run. Try to delete your build directory and start from a new one.

Philippe.

---

<div class="post-metadata">

### Author: ![grasph](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/grasph/32/25684_2.png) [@grasph](https://discourse.julialang.org/u/grasph)
#### Post date: [November 29, 2022, 10:55am UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/8 "2022-11-29T10:55:32Z")

</div>

Hello Sebastien,

The problem I mentioned before turns out to be linked to the LLVM version. Would it be possible to install CLANG+LLVM version 11.0.1, for which the code has been validated? That’s great we can install wrapit. Let’s do it, once I’ve validated the problem is solved.

Thanks,

Philippe.

---

<div class="post-metadata">

### Author: ![PatriceLebrun](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patricelebrun/32/44599_2.png) [@PatriceLebrun](https://discourse.julialang.org/u/PatriceLebrun)
#### Post date: [November 29, 2022, 11:02am UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/9 "2022-11-29T11:02:16Z")

</div>

Hi Philippe,

For my previous test I have deleted the build directory. To be sure after deleting build again I redo this test and I got the same error (no surprise).

Here is an output of printenv. I suppose some directories are not in the right place in PATH

**printenv | grep -i CC**  
\_\_MODULES\_LMPREREQ=Libraries/llvm/15.0.5&Compilers/gcc/9.3.1  
HOSTNAME=cca003  
XROOTD\_VMP=ccxroot:1999:/hpss/=/hpss/  
\_\_MODULES\_LMTAG=Compilers/gcc/9.3.1&auto-loaded  
MODULECONTACT=[https://support.cc.in2p3.fr/](https://support.cc.in2p3.fr/)  
PATH=/pbs/software/centos-7-x86\_64/cmake/3.25.0/bin:/pbs/software/centos-7-x86\_64/llvm/15.0.5/bin:/opt/rh/devtoolset-9/root/usr/bin:/pbs/software/centos-7-x86\_64/julia/1.7.0/bin:/usr/local/bin/:/usr/bin:/usr/local/root/pro/bin:/opt/bin:/opt/software/treqs2-client//prod/bin:/opt/software/rfio-hpss/prod/bin:/pbs/software/centos-7-x86\_64/xrootd/4.8.1/bin:/pbs/software/centos-7-x86\_64/oracle/12.2.0/instantclient/bin:/pbs/software/centos-7-x86\_64/logon/decommission:/pbs/software/centos-7-x86\_64/fs4/prod/bin:/usr/lib64/qt-3.3/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/puppetlabs/bin:/pbs/software/centos-7-x86\_64/suptools/prod/bin:/opt/ccin2p3/bin:/opt/dell/srvadmin/bin:/pbs/home/l/lebrun/bin://bin/:/pbs/throng/comet/bin:.  
_LMFILES_=/pbs/software/centos-7-x86\_64/modules/modulefiles/Compilers/gcc/9.3.1:/pbs/software/centos-7-x86\_64/modules/modulefiles/Libraries/llvm/15.0.5:/pbs/software/centos-7-x86\_64/modules/modulefiles/Production/cmake/3.25.0  
LOADEDMODULES=Compilers/gcc/9.3.1:Libraries/llvm/15.0.5:Production/cmake/3.25.0  
ENVIRONMENT=ACCESS  
\_\_MODULES\_LMALTNAME=Compilers/gcc/9.3.1&Compilers/gcc/rh-devtoolset-9&al|rh-devtoolset:Libraries/llvm/15.0.5&as|Libraries/llvm/default&as|Libraries/llvm/latest:Production/cmake/3.25.0&Production/cmake/latest&al|cmake&as|Production/cmake/default  
CC=/usr/bin/gcc  
BASH\_FUNC\_ccenv()=() { eval (/opt/ccenv/bin/ccenv @)

Patrice.

---

<div class="post-metadata">

### Author: ![grasph](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/grasph/32/25684_2.png) [@grasph](https://discourse.julialang.org/u/grasph)
#### Post date: [November 29, 2022, 2:33pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/10 "2022-11-29T14:33:55Z")

</div>

Then:

- Check that `which gcc` shows /opt/rh/devtoolset-9/root/usr/bin/gcc
- Add `-DCMAKE_CXX_COMPILER=```which g++``` -DCMAKE_C_COMPILER=```which gcc`` on you cmake command line. (`: backquote)

You can also run ccmake instead of cmake and edit the compiler path in the user interface.

Philippe.

---

<div class="post-metadata">

### Author: ![PatriceLebrun](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patricelebrun/32/44599_2.png) [@PatriceLebrun](https://discourse.julialang.org/u/PatriceLebrun)
#### Post date: [November 29, 2022, 3:19pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/11 "2022-11-29T15:19:16Z")

</div>

It’s fine with these two options:

cmake -DClang\_DIR=/pbs/software/centos-7-x86\_64/llvm/15.0.5/lib/cmake/clang -DCMAKE\_CXX\_COMPILER=`which g++` -DCMAKE\_C\_COMPILER=`which gcc` …  
– Configuring done  
You have changed variables that require your cache to be deleted.  
Configure will be re-run and you may have to reset some variables.  
The following variables have changed:  
CMAKE\_C\_COMPILER= /opt/rh/devtoolset-9/root/usr/bin/gcc  
CMAKE\_CXX\_COMPILER= /opt/rh/devtoolset-9/root/usr/bin/g++  
CMAKE\_CXX\_COMPILER= /opt/rh/devtoolset-9/root/usr/bin/g++

– The C compiler identification is GNU 9.3.1  
– The CXX compiler identification is GNU 9.3.1  
– Detecting C compiler ABI info  
– Detecting C compiler ABI info - done  
– Check for working C compiler: /opt/rh/devtoolset-9/root/usr/bin/gcc - skipped  
– Detecting C compile features  
– Detecting C compile features - done  
– Detecting CXX compiler ABI info  
– Detecting CXX compiler ABI info - done  
– Check for working CXX compiler: /opt/rh/devtoolset-9/root/usr/bin/g++ - skipped  
– Detecting CXX compile features  
– Detecting CXX compile features - done  
– Performing Test Terminfo\_LINKABLE  
– Performing Test Terminfo\_LINKABLE - Success  
– Found Terminfo: /usr/lib64/libtinfo.so  
– Found ZLIB: /usr/lib64/libz.so (found version “1.2.7”)  
– Found LibXml2: /usr/lib64/libxml2.so (found version “2.9.1”)  
– Configuring done  
– Generating done  
– Build files have been written to: /pbs/home/l/lebrun/comet/wrapit/build

More informations about gcc:  
(without `-DCMAKE_CXX_COMPILER=` `which g++` ` -DCMAKE\_C\_COMPILER=` ``which gcc` ` cmake does not work)

/pbs/home/l/lebrun/comet/wrapit/build(0)\>gcc -v  
Using built-in specs.  
COLLECT\_GCC=gcc  
COLLECT\_LTO\_WRAPPER=/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86\_64-redhat-linux/9/lto-wrapper  
Target: x86\_64-redhat-linux  
Configured with: …/configure --enable-bootstrap --enable-languages=c,c++,fortran,lto --prefix=/opt/rh/devtoolset-9/root/usr --mandir=/opt/rh/devtoolset-9/root/usr/share/man --infodir=/opt/rh/devtoolset-9/root/usr/share/info --with-bugurl=[http://bugzilla.redhat.com/bugzilla](http://bugzilla.redhat.com/bugzilla) --enable-shared --enable-threads=posix --enable-checking=release --enable-multilib --with-system-zlib --enable-\_\_cxa\_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-gcc-major-version-only --with-linker-hash-style=gnu --with-default-libstdcxx-abi=gcc4-compatible --enable-plugin --enable-initfini-array --with-isl=/builddir/build/BUILD/gcc-9.3.1-20200408/obj-x86\_64-redhat-linux/isl-install --disable-libmpx --enable-gnu-indirect-function --with-tune=generic --with-arch\_32=x86-64 --build=x86\_64-redhat-linux  
Thread model: posix  
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)

---

<div class="post-metadata">

### Author: ![PatriceLebrun](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/patricelebrun/32/44599_2.png) [@PatriceLebrun](https://discourse.julialang.org/u/PatriceLebrun)
#### Post date: [November 29, 2022, 3:35pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/12 "2022-11-29T15:35:20Z")

</div>

At stage make, I have this error :

make  
.  
.  
.  
[14%] Linking CXX executable wrapit  
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86\_64-redhat-linux/9/ld: CMakeFiles/wrapit.dir/src/libclang-ext.cpp.o: in function `hasDefaultConstructor(CXCursor)': libclang-ext.cpp:(.text+0x32): undefined reference to `typeinfo for clang::CXXRecordDecl’  
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86\_64-redhat-linux/9/ld: libclang-ext.cpp:(.text+0x37): undefined reference to `typeinfo for clang::Decl' /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: CMakeFiles/wrapit.dir/src/libclang-ext.cpp.o: in function `fully\_qualified\_name(CXCursor)‘:  
libclang-ext.cpp:(.text+0xbb): undefined reference to `typeinfo for clang::NamedDecl' /opt/rh/devtoolset-9/root/usr/libexec/gcc/x86_64-redhat-linux/9/ld: libclang-ext.cpp:(.text+0xc0): undefined reference to `typeinfo for clang::Decl’  
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86\_64-redhat-linux/9/ld: CMakeFiles/wrapit.dir/src/libclang-ext.cpp.o: in function `get_template_parameters(CXCursor)': libclang-ext.cpp:(.text+0xef8): undefined reference to `typeinfo for clang::TemplateDecl’  
/opt/rh/devtoolset-9/root/usr/libexec/gcc/x86\_64-redhat-linux/9/ld: libclang-ext.cpp:(.text+0xefd): undefined reference to `typeinfo for clang::Decl’  
collect2: error: ld returned 1 exit status  
make[2]: \*\*\* [wrapit] Error 1  
make[1]: \*\*\* [CMakeFiles/wrapit.dir/all] Error 2  
make: \*\*\* [all] Error 2

---

<div class="post-metadata">

### Author: ![sebgadrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebgadrat/32/44633_2.png) [@sebgadrat](https://discourse.julialang.org/u/sebgadrat)
#### Post date: [November 30, 2022, 12:38pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/13 "2022-11-30T12:38:04Z")

</div>

> [@grasph](#):
>
> cmake kept

I think the latest ROOT version (i.e. 6.26.10) builtin LLVM version is 9… So not recent enough.

What should maybe be done is to turn off the build of the builtin version, and use an external version. Let me check whether this is possible…

---

<div class="post-metadata">

### Author: ![sebgadrat](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/sebgadrat/32/44633_2.png) [@sebgadrat](https://discourse.julialang.org/u/sebgadrat)
#### Post date: [November 30, 2022, 12:38pm UTC](https://discourse.julialang.org/t/julia-in2p3-fr-computing-center-ccinp3/90813/14 "2022-11-30T12:38:40Z")

</div>

Ok, let le see if I can install WrapIt centrally.

That would probably be the best way to go.
