*  SuiteSparse

        * Version 4.2.1 et Openblas
        * Version 4.2.1 (utilisation sous Matlab sur gpuschwarz)
        * Version 4.2.1 (installation)
        * Version 4.0.2

*  Version 4.2.1 et Openblas

Pour récupérer OpenBlas :

git clone git://github.com/xianyi/OpenBLAS 
cd OpenBlas 
make 
sudo make PREFIX=/opt/OpenBLAS

*  Version 4.2.1 (utilisation sous Matlab sur gpuschwarz)

Utilisation sur gpuschwarz de la SuiteSparse 4.2.1 (a suite of sparse matrix software) de Tim Davis sous Matlab.

Pour utiliser la SuiteSparse sur gpuschwarz, il faut récupérer le fichier suivant SuiteSparsePath.m et executer la commande suivante

*  Version 4.2.1 (installation)

Installation de SuiteSparse 4.2.1 (a suite of sparse matrix software) de Tim Davis sous Matlab et Linux. Effectuée le 28 avril 2013.

  1. Configuration :

    machine :

    gpuschwarz

    system :

    Ubuntu 12.04 LTS (x86_64)

    matlab :

    R2012b/R2013a

  2. Liens utiles :

  3. Installation de Intel’s Threading Building Blocks :
    On récupère les sources

    wget http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_20130314oss_src.tgz

    On décompresse
    tar zxvf tbb41_20130314oss_src.tgz

    On compile
    cd tbb41_20130314oss 
    make

    On copie les librairies et les fichiers include. Le répertoire contenant les librairies dépend de la configuration courante de la machine, dans notre cas elles sont dans build/linux_intel64_gcc_cc4.6_libc2.15_kernel3.2.0_release/libtbb*. Il faut donc adapter la première commande :
    sudo cp build/linux_intel64_gcc_cc4.6_libc2.15_kernel3.2.0_release/libtbb* /usr/lib/ 
    sudo cp -r include/tbb /usr/include/

  4. Préparation de SuiteSparse :
    On récupère les dernières sources en date et on décompresse :

    wget http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.2.1.tar.gz 
    tar zxvf SuiteSparse-4.2.1.tar.gz

    Le répertoire SuiteSparse contient l’intégralité de la librairie. On lui adjoint la version 4.0.1 de Metis disponible à l’adresse http://glaros.dtc.umn.edu/gkhome/fsroot/sw/metis/OLD

    cd SuiteSparse 
    wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/metis-4.0.1.tar.gz 
    tar zxvf metis-4.0.1.tar.gz

    Suite a un ch’tit bug (voir explications section Other packages required : de la SuiteSparse), il faut éditer le fichier metis-4.0/Lib/rename.h et remplacer la dernière ligne du fichier :
    #define log2 __log2
    par
    #define log2 METIS__log2

    Pour améliorer les performances, T. Davis sugère de modifier le fichier metis-4.0/Makefile.in comme suit

    ... CC = gcc ... OPTFLAGS = -O3 ...

  5. Installation sous Linux :
    Dans le répertoire SuiteSparse :

    make 
    sudo make install

*  Version 4.0.2

Installation de SuiteSparse 4.0.2 (a suite of sparse matrix software) de Tim Davis sous Matlab et Linux. Effectuée le 18 décembre 2012.

  1. Configuration :

    machine :

    gpuschwarz

    system :

    Ubuntu 12.04 LTS (x86_64)

    matlab :

    R2012b

  2. Liens utiles :

  3. Installation de Intel’s Threading Building Blocks :
    On récupère les sources

    wget http://threadingbuildingblocks.org/sites/default/files/software_releases/source/tbb41_20121003oss_src.tgz

    On décompresse
    tar zxvf tbb41_20121003oss_src.tgz

    On compile
    cd tbb41_20121003oss 
    make

    On copie les librairies et les fichiers include. Le répertoire contenant les librairies dépend de la configuration courante de la machine, dans notre cas elles sont dans lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/. Il faut donc adapter la première commande :
    sudo cp  lib/intel64/cc4.1.0_libc2.4_kernel2.6.16.21/libtbb* /usr/lib/ 
    sudo cp -r include/tbb /usr/include/

  4. Préparation de SuiteSparse :
    On récupère les dernières sources en date et on décompresse :

    wget http://www.cise.ufl.edu/research/sparse/SuiteSparse/SuiteSparse-4.0.2.tar.gz 
    tar zxvf SuiteSparse-4.0.2.tar.gz

    Le répertoire SuiteSparse contient l’intégralité de la librairie. On lui adjoint la version 4.0.1 de Metis disponible à l’adresse http://glaros.dtc.umn.edu/gkhome/fsroot/sw/metis/OLD

    cd SuiteSparse 
    wget http://glaros.dtc.umn.edu/gkhome/fetch/sw/metis/OLD/metis-4.0.1.tar.gz 
    tar zxvf metis-4.0.1.tar.gz

    Suite a un ch’tit bug (voir explications section Other packages required : de la SuiteSparse), il faut éditer le fichier metis-4.0/Lib/rename.h et remplacer la dernière ligne du fichier :
    #define log2 __log2#
    par
    #define log2 METIS__log2#

    Pour améliorer les performances, T. Davis sugère de modifier le fichier metis-4.0/Makefile.in comme suit

    ... CC = gcc ... OPTFLAGS = -O3 ...

  5. Installation sous Matlab R2012b :
    Actuellement la version par default de gcc est la version 4.6.3 or la version supportée avec MEX est la "4.4.6". On installe classiquement la version 4.4 du compilateur (gcc, g++ et gfortran).
    Pour forcer Matlab à utiliser la version 4.4 du compilateur, on modifie le fichier ~/.matlab/R2012b/mexopts.sh section glnxa64) comme suit

          ...       CC=’gcc-4.4’       ...       CXX=’g++-4.4’       ...       FC=’gfortran-4.4’

    Si le fichier n’existe pas, lancer Matlab R2012b puis executer la commande mex -setup
    >> mex -setup 
     
     
        Options files control which compiler to use, the compiler and link command 
        options, and the runtime libraries to link against. 
     
        Using the ’mex -setup’ command selects an options file that is 
        placed in /home/<...>/.matlab/R2012b and used by default for ’mex’. An options 
        file in the current working directory or specified on the command line 
        overrides the default options file in /home/<...>/.matlab/R2012b. 
     
        To override the default options file, use the ’mex -f’ command 
        (see ’mex -help’ for more information). 
     
    The options files available for mex are: 
     
      1: <...>/bin/mexopts.sh : 
          Template Options file for building gcc MEX-files 
     
     
      0: Exit with no changes 
     
    Enter the number of the compiler (0-1): 
    1 
     
     
    <...>/bin/mexopts.sh is being copied to 
    /home/<...>/.matlab/R2012b/mexopts.sh 
     
     
    ************************************************************************** 
      Warning: The MATLAB C and Fortran API has changed to support MATLAB 
               variables with more than 2^32-1 elements.  In the near future 
               you will be required to update your code to utilize the new 
               API. You can find more information about this at: 
               http://www.mathworks.com/help/techdoc/matlab_external/bsflnue-1.html 
               Building with the -largeArrayDims option enables the new API. 
    **************************************************************************

    Changer les droits sur le fichier et effectuer les modifications précédentes.

    Ensuite, sous Matlab R2012b et dans le répertoire SparseSuite, lancer le programme SuiteSparse_install.m

    Une fois l’installation terminée, pour utiliser cette librairie, il faudra ajouter

    addpath SuiteSparse addpath SuiteSparse/UMFPACK/MATLAB addpath SuiteSparse/CHOLMOD/MATLAB addpath SuiteSparse/AMD/MATLAB addpath SuiteSparse/COLAMD/MATLAB addpath SuiteSparse/CCOLAMD/MATLAB addpath SuiteSparse/CAMD/MATLAB addpath SuiteSparse/CXSparse/MATLAB/UFget addpath SuiteSparse/CXSparse/MATLAB/Demo addpath SuiteSparse/CXSparse/MATLAB/CSparse addpath SuiteSparse/LDL/MATLAB addpath SuiteSparse/BTF/MATLAB addpath SuiteSparse/KLU/MATLAB addpath SuiteSparse/SPQR/MATLAB addpath SuiteSparse/RBio/RBio addpath SuiteSparse/MATLAB_Tools addpath SuiteSparse/MATLAB_Tools/Factorize addpath SuiteSparse/MATLAB_Tools/MESHND addpath SuiteSparse/MATLAB_Tools/LINFACTOR addpath SuiteSparse/MATLAB_Tools/find_components addpath SuiteSparse/MATLAB_Tools/GEE addpath SuiteSparse/MATLAB_Tools/shellgui addpath SuiteSparse/MATLAB_Tools/waitmex addpath SuiteSparse/MATLAB_Tools/spqr_rank addpath SuiteSparse/MATLAB_Tools/spqr_rank/SJget addpath SuiteSparse/MATLAB_Tools/UFcollection addpath SuiteSparse/MATLAB_Tools/SSMULT addpath SuiteSparse/MATLAB_Tools/dimacs10 addpath SuiteSparse/MATLAB_Tools/spok addpath SuiteSparse/MATLAB_Tools/sparseinv

  6. Installation sous Linux :
    Dans le répertoire SuiteSparse :

    make 
    sudo make install