Skip to content

Commit 98dccbd

Browse files
removed Tools/tabulatedFunctions.* which are not used, userFunction.* is the one used ; updated the doc for GPU install with openmpi and the BC supported
1 parent 3a0928c commit 98dccbd

9 files changed

+24
-161
lines changed

doc/Sphinx/Understand/GPU_offloading.rst

+2
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ the announced exaflopic supercomputers will include GPUs.
2020
* Cartesian geometry in 1D, 2D and in 3D , for order 2
2121
* Diagnostics: Field, Probes, Scalar, ParticleBinning, TrackParticles
2222
* Moving Window
23+
* Boundary conditions for Fields: Periodic, reflective and silver-muller are supported (no PML or BM)
24+
* Boundary conditions for Particles: Periodic, Reflective, thermal, remove and stop are supported
2325

2426
* A few key features remain to be implemented (AM geometry, ionization, PML, envelope,
2527
additional physics), but the fundamentals of the code are ported.

doc/Sphinx/Use/GPU_version.rst

+2-4
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ This page contains the links of this documentation to compile and run SMILEI on
1616

1717
----
1818

19-
Known issues
20-
^^^^^^^^^^^^
19+
Important note:
2120

22-
2D and 3D runs may crash with A2000 & A6000 GPUs (used in laptops and worstations respectively,
23-
they are not 'production GPUs' which are designed for 64 bits floating point operations )
21+
The biggest challenge to execute SMILEI on an accelerator is the correct installation of the openmpi library. It needs to be compiled with nvc++ after configuring (ie. ./configure --options) with the appropriate options specific to your system

doc/Sphinx/Use/install_linux_GPU.rst

+20
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ First, make sure you have a recent version of CMAKE, and the other libraries
66
to compile Smilei on CPU as usual. In particular, for this example, you
77
need GCC <= 12.
88

9+
The installation protocol showed below uses the openmpi included in nvhpc. This approach often results in segfault at runtime (note that nvidia will remove openmpi from nvhpc in the future).
10+
The "proper" way, which is much harder, consists in installing openmpi compiled with nvhpc (
11+
912
Make a directory to store all the nvidia tools. We call it $NVDIR:
1013

1114
.. code:: bash
@@ -72,3 +75,20 @@ To run:
7275
7376
source nvidia_env.sh
7477
smilei namelist.py
78+
79+
80+
As an example of a "simple" openmpi installation
81+
Openmpi dependencies such as zlib, hwloc and libevent should first be compiled with nvc++
82+
83+
.. code:: bash
84+
export cuda=PATH_TO_YOUR_NVHPC_FOLDER/Linux_x86_64/24.5/cuda
85+
wget https://download.open-mpi.org/release/open-mpi/v4.1/openmpi-4.1.5.tar.gz
86+
tar -xzf openmpi-4.1.5.tar.gz
87+
cd openmpi-4.1.5
88+
mkdir build
89+
cd build
90+
CC=nvc++ CXX=nvc++ CFLAGS=-fPIC CXXFLAGS=-fPIC ../configure --with-hwloc --enable-mpirun-prefix-by-default --prefix=PATH_TO_openmpi/openmpi-4.1.6/build --enable-mpi-cxx --without-verb --with-cuda=$cuda --disable-mpi-fortran -with-libevent=PATH_TO_libevent/libevent-2.1.12-stable/build
91+
make -j 4 all
92+
make install
93+
94+
Because of the complexity of the configure for openmpi, we recommend using your supercomputer support to use smilei on GPUs.

src/ParticleBC/BoundaryConditionType.cpp

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99

1010
#include "BoundaryConditionType.h"
1111
#include "Params.h"
12-
#include "tabulatedFunctions.h"
1312
#include "userFunctions.h"
1413

1514

src/ParticleBC/BoundaryConditionType.h

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
#include "Particles.h"
1414
#include "Species.h"
1515
#include "Params.h"
16-
#include "tabulatedFunctions.h"
1716
#include "userFunctions.h"
1817
#include "Random.h"
1918

src/ParticleBC/PartBoundCond.h

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include "Params.h"
55
#include "Species.h"
66
#include "Particles.h"
7-
#include "tabulatedFunctions.h"
87

98
class Patch;
109

src/ParticleBC/PartWall.h

-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33

44
#include "Params.h"
55
#include "Random.h"
6-
#include "tabulatedFunctions.h"
76

87
class Patch;
98
class Species;

src/Tools/tabulatedFunctions.cpp

-89
This file was deleted.

src/Tools/tabulatedFunctions.h

-64
This file was deleted.

0 commit comments

Comments
 (0)