From bc9427c38c264de89eecc585bcaaccc542506a52 Mon Sep 17 00:00:00 2001 From: Guido Cossu Date: Sun, 30 Oct 2016 16:53:01 +0000 Subject: [PATCH] Quick-start guide --- _data/navigation.yml | 5 +-- _pages/quick-start-guide.md | 65 +++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 _pages/quick-start-guide.md diff --git a/_data/navigation.yml b/_data/navigation.yml index 63465882..9bf7801b 100644 --- a/_data/navigation.yml +++ b/_data/navigation.yml @@ -4,7 +4,7 @@ main: url: /docs/ - title: "Quick-start guide" - url: /docs/quick-start-guide + url: /docs/quick-start-guide/ - title: "About" url: /about/ @@ -41,4 +41,5 @@ docs: - title : "Theories" url: /docs/theories/ - title: "HMC" - url: /docs/theories/hmc/ \ No newline at end of file + url: /docs/theories/hmc/ + \ No newline at end of file diff --git a/_pages/quick-start-guide.md b/_pages/quick-start-guide.md new file mode 100644 index 00000000..10137046 --- /dev/null +++ b/_pages/quick-start-guide.md @@ -0,0 +1,65 @@ +### Installation +First, start by cloning the repository: + +``` bash +git clone https://github.com/paboyle/Grid.git +``` + +Then enter the cloned directory and set up the build system: + +``` bash +cd Grid +./bootstrap.sh +``` + +Now you can execute the `configure` script to generate makefiles (here from a build directory): + +``` bash +mkdir build; cd build +../configure --enable-precision=double --enable-simd=AVX --enable-comms=mpi-auto --prefix= +``` + +where `--enable-precision=` set the default precision (`single` or `double`), +`--enable-simd=` set the SIMD type (see possible values below), `--enable- +comms=` set the protocol used for communications (`none`, `mpi`, `mpi-auto` or +`shmem`), and `` should be replaced by the prefix path where you want to +install Grid. The `mpi-auto` communication option set `configure` to determine +automatically how to link to MPI. Other options are available, use `configure +--help` to display them. Like with any other program using GNU autotool, the +`CXX`, `CXXFLAGS`, `LDFLAGS`, ... environment variables can be modified to +customise the build. + +Finally, you can build and install Grid: + +``` bash +make; make install +``` + +To minimise the build time, only the tests at the root of the `tests` directory are built by default. If you want to build tests in the sub-directory `` you can execute: + +``` bash +make -C tests/ tests +``` + +### Possible SIMD types + +The following options can be use with the `--enable-simd=` option to target different SIMD instruction sets: + +| String | Description | +| ----------- | -------------------------------------- | +| `GEN` | generic portable vector code | +| `SSE4` | SSE 4.2 (128 bit) | +| `AVX` | AVX (256 bit) | +| `AVXFMA4` | AVX (256 bit) + FMA | +| `AVX2` | AVX 2 (256 bit) | +| `AVX512` | AVX 512 bit | +| `AVX512MIC` | AVX 512 bit for Intel MIC architecture | +| `ICMI` | Intel ICMI instructions (512 bit) | + +Alternatively, some CPU codenames can be directly used: + +| String | Description | +| ----------- | -------------------------------------- | +| `KNC` | [Intel Knights Corner](http://ark.intel.com/products/codename/57721/Knights-Corner) | +| `KNL` | [Intel Knights Landing](http://ark.intel.com/products/codename/48999/Knights-Landing) | +