Mentions légales du service
Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
Chameleon
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Container Registry
Operate
Environments
Terraform modules
Monitor
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
solverstack
Chameleon
Commits
4e892ff4
Commit
4e892ff4
authored
7 years ago
by
PRUVOST Florent
Browse files
Options
Downloads
Patches
Plain Diff
improve style and remove the paragraph that have been moved in using
parent
2db5d04f
No related branches found
No related tags found
No related merge requests found
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
doc/orgmode/chapters/installing.org
+40
-89
40 additions, 89 deletions
doc/orgmode/chapters/installing.org
with
40 additions
and
89 deletions
doc/orgmode/chapters/installing.org
+
40
−
89
View file @
4e892ff4
...
...
@@ -6,24 +6,23 @@ Chameleon is written in C, it provides an interface to be called from
Fortran and depends on a couple of external libraries that must be
installed on the system.
Chameleon can be built and installed by the standard means of CMake
(@uref{http://www.cmake.org/}). General information about CMake, as
well as installation binaries and CMake source code are available from
@uref{http://www.cmake.org/cmake/resources/software.html}.
Chameleon can be built and installed by the standard means of [[http://www.cmake.org/][CMake]].
General information about CMake, as well as installation binaries and
CMake source code are available from [[http://www.cmake.org/cmake/resources/software.html][here]].
To get support to install a full distribution Chameleon + dependencies
we encourage users to use the morse branch of
*
Spack
*
.
we encourage users to use the
/
morse
/
branch of
, see [[sec:spack][
Spack
]]
.
** Getting Chameleon
The latest official release tarballs of Chameleon sources are
available for download from
https://gitlab.inria.fr/solverstack/chameleon/tags.
available for download from the [[https://gitlab.inria.fr/solverstack/chameleon/tags][gitlab tags page]].
The latest development snapshot is available on gitlab
https://gitlab.inria.fr/solverstack/chameleon.
The latest development state is available on [[https://gitlab.inria.fr/solverstack/chameleon][gitlab]].
** Chameleon prerequisites
To install Chameleon's libraries, header files, and executables, one
needs:
- CMake (version 2.8 minimum): the build system
...
...
@@ -32,7 +31,7 @@ we encourage users to use the morse branch of *Spack*.
- python: to generate files in the different precisions
- external libraries: this depends on the configuration, by default
the required libraries are
-
StarPU:
http://runtime.bordeaux.inria.fr/StarPU/
-
[[
http://runtime.bordeaux.inria.fr/StarPU/
][StarPU]]
- CBLAS, LAPACKE: these are interfaces and there exist several
providers that can be used with Chameleon
- Intel MKL, Netlib, OpenBlas
...
...
@@ -43,10 +42,10 @@ we encourage users to use the morse branch of *Spack*.
- math (libm)
Optional libraries:
-
quark:
http://icl.cs.utk.edu/quark/
-
cuda:
https://developer.nvidia.com/cuda-downloads
-
cublas: comes with cuda
http://docs.nvidia.com/cuda/cublas/
- mpi:
openmpi
http://www.open-mpi.org/
-
[[
http://icl.cs.utk.edu/quark/
][quark]]
-
[[
https://developer.nvidia.com/cuda-downloads
][cuda]]
-
[[
http://docs.nvidia.com/cuda/cublas/
][cublas]]: comes with cuda
- mpi:
[[
http://www.open-mpi.org/
][openmpi]]
These packages must be installed on the system before trying to
configure/build chameleon. Please look at the distrib/ directory
...
...
@@ -60,7 +59,7 @@ we encourage users to use the morse branch of *Spack*.
sudo apt-get update
# Install Netlib blas, lapack, tmglib, cblas and lapacke suite
sudo apt-get install -y liblapack-dev liblapacke-dev
# Alernatively to Netlib, OpenBLAS could be used (faster kernels)
# Al
t
ernatively to Netlib, OpenBLAS could be used (faster kernels)
sudo apt-get install -y libopenblas-dev liblapacke-dev
# Install OpenMPI
sudo apt-get install -y libopenmpi-dev
...
...
@@ -175,15 +174,18 @@ we encourage users to use the morse branch of *Spack*.
**** StarPU
[[http://runtime.bordeaux.inria.fr/StarPU/][StarPU]] is a task programming library for hybrid architectures.
StarPU handles run-time concerns such as: @itemize @bullet @item
Task dependencies @item Optimized heterogeneous scheduling @item
Optimized data transfers and replication between main memory and
discrete memories @item Optimized cluster communications @end
itemize StarPU can be used to benefit from GPUs and
distributed-memory environment. One of QUARK or StarPU runtime
system has to be enabled in order to schedule tasks on the
architecture. If StarPU is enabled then QUARK is disabled and
conversely. Note StarPU is enabled by default.
StarPU handles run-time concerns such as:
* Task dependencies
* Optimized heterogeneous scheduling
* Optimized data transfers and replication between main memory
and discrete memories
* Optimized cluster communications
StarPU can be used to benefit from GPUs and distributed-memory
environment. One of QUARK or StarPU runtime system has to be
enabled in order to schedule tasks on the architecture. If
StarPU is enabled then QUARK is disabled and conversely. Note
StarPU is enabled by default.
*Caution about the compatibility:* Chameleon has been mainly tested
with StarPU-1.1 and 1.2 releases.
...
...
@@ -194,11 +196,12 @@ we encourage users to use the morse branch of *Spack*.
traces. Chameleon can trace kernels execution on the different
workers and produce .paje files if FxT is enabled. FxT can only
be used through StarPU and StarPU must be compiled with FxT
enabled, see how to use this feature here
@ref{Use FxT profil
ing
through
StarPU
}
.
enabled, see how to use this feature here
[[sec:trace][Execution trace us
ing
StarPU
]]
.
*Caution about the compatibility:* FxT should be compatible with
the version of StarPU used.
**** hwloc
[[http://www.open-mpi.org/projects/hwloc/][hwloc]] (Portable Hardware Locality) is a software package for
accessing the topology of a multicore system including components
...
...
@@ -213,10 +216,6 @@ we encourage users to use the morse branch of *Spack*.
POSIX threads library is required to run Chameleon on Unix-like systems.
It is a standard component of any such system.
@node Optional dependencies
@subsection Optional dependencies
@menu
**** OpenMPI
[[http://www.open-mpi.org/][OpenMPI]] is an open source Message Passing Interface
implementation for execution on multiple nodes with
...
...
@@ -244,6 +243,8 @@ we encourage users to use the morse branch of *Spack*.
compatible with CUDA.
** Distribution of Chameleon using Spack
<<sec:spack>>
To get support to install a full distribution (Chameleon +
dependencies) we encourage users to use the morse branch of *Spack*.
...
...
@@ -269,7 +270,7 @@ we encourage users to use the morse branch of *Spack*.
1. configure :
#+begin_src
cmake path/to/chameleon -DOPTION1= -DOPTION2= ...
# see the "
O
ptions" section to get list of options
# see the "
Configuration o
ptions" section to get list of options
# see the "Dependencies detection" for details about libraries detection
#+end_src
2. build :
...
...
@@ -289,7 +290,7 @@ we encourage users to use the morse branch of *Spack*.
make install
#+end_src
Do not forget to specify the install directory with
*-DCMAKE_INSTALL_PREFIX* at configure
*-DCMAKE_INSTALL_PREFIX* at configure
.
#+begin_example
cmake /home/jdoe/chameleon -DCMAKE_INSTALL_PREFIX=/home/jdoe/install/chameleon
#+end_example
...
...
@@ -317,11 +318,12 @@ we encourage users to use the morse branch of *Spack*.
**** Native CMake options (non-exhaustive list)
* *CMAKE_BUILD_TYPE=Debug|Release|RelWithDebInfo|MinSizeRel* :
level of compiler optimization, enable debug information
level of compiler optimization, enable/disable debug
information
* *CMAKE_INSTALL_PREFIX=path/to/your/install/dir* : where headers,
libraries, executables, etc, will be copied when invoking make
install
* *BUILD_SHARED_LIBS=ON|OFF* :
I
ndicate wether or not CMake has to
* *BUILD_SHARED_LIBS=ON|OFF* :
i
ndicate wether or not CMake has to
build Chameleon static (~OFF~) or shared (~ON~) libraries.
* *CMAKE_C_COMPILER=gcc|icc|...* : to choose the C compilers
if several exist in the environment
...
...
@@ -341,7 +343,7 @@ we encourage users to use the morse branch of *Spack*.
* List of packages that can searched just like STARPU (with _DIR,
_INCDIR and _LIBDIR):
* *BLAS*, *CBLAS*, *EZTRACE*, *FXT*, *HWLOC*, *LAPACK*, *LAPACKE*, *QUARK*,
*SIMGRID, *TMG*
*SIMGRID
*
, *TMG*
Libraries detected with an official cmake module (see module files
in CMAKE_ROOT/Modules/): CUDA - MPI - Threads.
...
...
@@ -391,6 +393,7 @@ we encourage users to use the morse branch of *Spack*.
*** Dependencies detection
<<sec:depdet>>
You have different choices to detect dependencies on your system,
either by setting some environment variables containing paths to
the libs and headers or by specifying them directly at cmake
...
...
@@ -423,63 +426,11 @@ we encourage users to use the morse branch of *Spack*.
#+end_src
- note: BLAS and LAPACK detection can be tedious so that we
provide a verbose mode you can set *-DBLAS_VERBOSE=ON* or
*-DLAPACK_VERBOSE=ON* to
activat
e it
*-DLAPACK_VERBOSE=ON* to
enabl
e it
3) detection with custom environment variables: all variables like
_DIR, _INCDIR, _LIBDIR can be set as environment variables
instead of CMake options, there will be read
4) using
pkg-config
for libraries that provide .pc files
4) using
[[https://www.freedesktop.org/wiki/Software/pkg-config/][pkg-config]]
for libraries that provide .pc files
- update your *PKG_CONFIG_PATH* to the paths where to find .pc
files of installed external libraries like hwloc, starpu, some
blas/lapack, etc
*** Execution tracing StarPU
<<sec:trace>>
StarPU can generate its own trace log files by compiling it with
the ~--with-fxt~ option at the configure step (you can have to
specify the directory where you installed FxT by giving
~--with-fxt=...~ instead of ~--with-fxt~ alone). By doing so, traces
are generated after each execution of a program which uses StarPU
in the directory pointed by the STARPU_FXT_PREFIX environment
variable.
#+begin_example
export STARPU_FXT_PREFIX=/home/jdoe/fxt_files/
#+end_example
When executing a ~./timing/...~ Chameleon program, if it has been
enabled (StarPU compiled with FxT and
*-DCHAMELEON_ENABLE_TRACING=ON*), you can give the option ~--trace~ to
tell the program to generate trace log files.
Finally, to generate the trace file which can be opened with Vite
program (http://vite.gforge.inria.fr/), you can use the
*starpu_fxt_tool* executable of StarPU. This tool should be in
~$STARPU_INSTALL_REPOSITORY/bin~. You can use it to generate the
trace file like this:
#+begin_src
path/to/your/install/starpu/bin/starpu_fxt_tool -i prof_filename
#+end_src
There is one file per mpi processus (prof_filename_0,
prof_filename_1 ...). To generate a trace of mpi programs you can
call it like this:
#+begin_src
path/to/your/install/starpu/bin/starpu_fxt_tool -i prof_filename*
#+end_src
The trace file will be named paje.trace (use -o option to specify
an output name). Alternatively, for non mpi execution (only one
processus and profiling file), you can set the environment
variable *STARPU_GENERATE_TRACE=1* to automatically generate the
paje trace file.
*** Use simulation mode with StarPU-SimGrid
<<sec:simu>>
Simulation mode can be activated by setting the cmake option
CHAMELEON_SIMULATION to ON. This mode allows you to simulate
execution of algorithms with StarPU compiled with SimGrid
(http://simgrid.gforge.inria.fr/). To do so, we provide some
perfmodels in the simucore/perfmodels/ directory of Chameleon
sources. To use these perfmodels, please set your *STARPU_HOME*
environment variable to
~path/to/your/chameleon_sources/simucore/perfmodels~. Finally, you
need to set your *STARPU_HOSTNAME* environment variable to the name
of the machine to simulate. For example: *STARPU_HOSTNAME=mirage*.
Note that only POTRF kernels with block sizes of 320 or 960
(simple and double precision) on mirage and sirocco machines are
available for now. Database of models is subject to change.
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment