*  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