38,789
edits
(Created page with "== Paquets Python, R et Perl == Ces langages possèdent d'importantes librairies de modules et des outils de gestion des modules pour aisément installer les fichiers de tous...") |
(Updating to match new version of source page) |
||
Line 1: | Line 1: | ||
<languages /> | <languages /> | ||
<div class="mw-translate-fuzzy"> | |||
Plusieurs logiciels utilisés par les chercheurs universitaires sont disponibles gratuitement sur Internet. Vous pouvez demander à Calcul Canada s'installer de tels logiciels que vous pourrez ensuite utiliser avec la commande <code>module load</code> (voir [https://docs.computecanada.ca/wiki/Utiliser_des_modules Utiliser les modules]); pour ce faire, écrivez à [mailto:support@calculcanada.ca support@calculcanada.ca] en joignant l'adresse URL pour l'installation. Si les clauses de la licence et les exigences techniques le permettent, le logiciel sera habituellement disponible dans 24 à 48 heures ouvrables. | Plusieurs logiciels utilisés par les chercheurs universitaires sont disponibles gratuitement sur Internet. Vous pouvez demander à Calcul Canada s'installer de tels logiciels que vous pourrez ensuite utiliser avec la commande <code>module load</code> (voir [https://docs.computecanada.ca/wiki/Utiliser_des_modules Utiliser les modules]); pour ce faire, écrivez à [mailto:support@calculcanada.ca support@calculcanada.ca] en joignant l'adresse URL pour l'installation. Si les clauses de la licence et les exigences techniques le permettent, le logiciel sera habituellement disponible dans 24 à 48 heures ouvrables. | ||
</div> | |||
Vous avez le droit d'installer des logiciels dans votre propre espace projet ou dans votre espace ''home'', par exemple pour | Vous avez le droit d'installer des logiciels dans votre propre espace projet ou dans votre espace ''home'', par exemple pour | ||
Line 14: | Line 16: | ||
Cette syntaxe de commande est fréquemment utilisée, avec des variantes telles <code>cmake .</code> au lieu de <code>./configure</code> et <code>sudo make install</code> au lieu de <code>make install</code>. | Cette syntaxe de commande est fréquemment utilisée, avec des variantes telles <code>cmake .</code> au lieu de <code>./configure</code> et <code>sudo make install</code> au lieu de <code>make install</code>. | ||
<div class="mw-translate-fuzzy"> | |||
Ces instructions fonctionnent comme prévu à l'occasion, mais <code>make install</code> crée quelquefois un obstacle car le logiciel s'attend à pouvoir écrire dans <code>/usr/local</code> ou autre espace partagé du système de fichiers. La commande <code>sudo make install</code> causera toujours l'arrêt de la procédure parce que <code>sudo</code> exige les permissions d'administrateur (''root''). La solution consiste à placer un indicateur <code>--prefix</code> à l'étape <code>configure</code> pour que l'installation soit dirigée vers le répertoire de votre choix, par exemple | Ces instructions fonctionnent comme prévu à l'occasion, mais <code>make install</code> crée quelquefois un obstacle car le logiciel s'attend à pouvoir écrire dans <code>/usr/local</code> ou autre espace partagé du système de fichiers. La commande <code>sudo make install</code> causera toujours l'arrêt de la procédure parce que <code>sudo</code> exige les permissions d'administrateur (''root''). La solution consiste à placer un indicateur <code>--prefix</code> à l'étape <code>configure</code> pour que l'installation soit dirigée vers le répertoire de votre choix, par exemple | ||
{{Commande|./configure --prefix{{=}}$PROJECT/some-package && make && make install}} | {{Commande|./configure --prefix{{=}}$PROJECT/some-package && make && make install}} | ||
</div> | |||
Si d'autres erreurs surviennent, contactez [mailto:support@computecanada.ca support@calculcanada.ca]. Pour les détails, consultez les pages [https://docs.computecanada.ca/wiki/Make/fr Make], [https://docs.computecanada.ca/wiki/Autotools/fr Autotools] et [https://docs.computecanada.ca/wiki/CMake/fr CMake]. | Si d'autres erreurs surviennent, contactez [mailto:support@computecanada.ca support@calculcanada.ca]. Pour les détails, consultez les pages [https://docs.computecanada.ca/wiki/Make/fr Make], [https://docs.computecanada.ca/wiki/Autotools/fr Autotools] et [https://docs.computecanada.ca/wiki/CMake/fr CMake]. | ||
== BLAS/LAPACK and MKL == | |||
Many software packages expect the commonly used numerical linear algebra libraries BLAS and LAPACK to be available as <tt>-lblas</tt> and <tt>-llapack</tt> which isn't the case on Compute Canada systems, where these libraries are integrated with Intel's [https://software.intel.com/en-us/mkl Math Kernel Library] (MKL). If you are using one of the Intel compilers (e.g. ifort, icc and icpc) then the solution is quite simple, you need only add the flag <tt>-mkl=sequential</tt> (without internal MKL threading) or <tt>-mkl</tt> (with threading) to your compiler and linker options in order to ensure that the MKL and thus BLAS/LAPACK are used; see also [https://software.intel.com/en-us/mkl-linux-developer-guide-using-the-mkl-compiler-option here]. If you are using a non-Intel compiler, for example the Gnu compiler collection, then you will need to explicitly list the necessary MKL libraries during the link phase; Intel provides a tool for building the link syntax which you can use [https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor here]. | |||
== apt-get et yum == | == apt-get et yum == | ||
Line 24: | Line 31: | ||
== Paquets Python, R et Perl == | == Paquets Python, R et Perl == | ||
Ces langages possèdent d'importantes librairies de modules et des outils de gestion des modules pour aisément installer les fichiers de tous types dans votre répertoire ''home''. Consultez les pages [https://docs.computecanada.ca/wiki/Python/fr Python], [https://docs.computecanada.ca/wiki/R/fr R] et [https://docs.computecanada.ca/wiki/Perl Perl] pour savoir si le paquet dont vous avez besoin est disponible; autrement, vous pouvez l'installer par vous-même en suivant les directives sur chacune des pages. | Ces langages possèdent d'importantes librairies de modules et des outils de gestion des modules pour aisément installer les fichiers de tous types dans votre répertoire ''home''. Consultez les pages [https://docs.computecanada.ca/wiki/Python/fr Python], [https://docs.computecanada.ca/wiki/R/fr R] et [https://docs.computecanada.ca/wiki/Perl Perl] pour savoir si le paquet dont vous avez besoin est disponible; autrement, vous pouvez l'installer par vous-même en suivant les directives sur chacune des pages. | ||
== The Compute Canada software stack == | |||
Almost all software that is used on the new clusters is distributed centrally, using the CVMFS file system. What this means in practise is that this software is not installed under <code>/usr/bin</code>, <code>/usr/include</code>, and so on, as it would be in a Linux distribution, but instead somewhere under <code>/cvmfs/soft.computecanada.ca</code>, and is identical on all new clusters. | |||
The core of this software stack is provided by the <code>nixpkgs/16.09</code> module, which is loaded by default. This software stack, internally managed using the Nix package manager, is located at <code>/cvmfs/soft.computecanada.ca/nix/var/nix/profiles/16.09</code>. The environment variable <code>$EBROOTNIXPKGS</code> should be used to refer to this path. | |||
Under this location you can find all of the common packages typically included with Linux distributions, for instance <code>make</code>, <code>ls</code>, <code>cat</code>, <code>grep</code>, and so on. Typically, when you compile some software, the compiler and linker will automatically look for header files and libraries in the right location (via the environment variables <code>$CPATH</code> and <code>$LIBRARY_PATH</code>, respectively). | |||
Some software, however, has been hardcoded to look under <code>/usr</code>. If that is the case, the compilation will typically fail, and needs to be explicitly told about <code>$EBROOTNIXPKGS</code>. Sometimes that means adjusting a Makefile, sometimes it needs to be specified in a certain <code>--with-</code> flag for the configure script, or a configuration file needs to be edited. If you are not sure how to do this please do not hesitate to ask for help. | |||
Similarly, if a package depends on a library that is provided by a module other than <code>nixpkgs</code>, you may need to provide the location of the header files and libraries of that module. The EBROOT convention applies to all modules, e.g. the HDF5 library is installed in <code>$EBROOTHDF5</code>, and its <code>include</code> and <code>lib</code> subdirectories once you <code>module load hdf5</code>. | |||
If a header file or library that would usually be provided by an RPM or other package manager in a typical Linux distributon is neither present via <code>nixpkgs</code> or via another module, please let us know. Most likely it can be easily added to the existing stack. | |||
Notes: | |||
* all binaries under <code>/cvmfs/soft.computecanada.ca</code> use what is called a runpath, which means that the directories for the runtime libraries that these binaries depend on are put inside the binary. That means it is generally *not* necessary to use <code>$LD_LIBRARY_PATH</code>. In fact, <code>$LD_LIBRARY_PATH</code> overrides this runpath and you should '''not''' set that environment variable to locations such as <code>/usr/lib64</code> or <code>$EBROOTNIXPKGS/lib</code>. Many binaries will no longer work if you attempt this. | |||
* if all else fails you can use <code>module --force purge</code> to remove the CVMFS environment. You are then left with a bare-bones CentOS-7 installation without modules. This may help for special situations such as compiling GCC yourself or using custom toolchains such as the [http://www.astro.wisc.edu/~townsend/static.php?ref=mesasdk MESA SDK]. Purging modules would then '''only''' be necessary when you compile such software; the modules can be reloaded when running it. |