Adding the initial documentation
@ -1,6 +1,7 @@
|
||||
# main links links
|
||||
main:
|
||||
- title: "Docs"
|
||||
- title: "Documentation"
|
||||
icon: "octicon octicon-book vertical-middle"
|
||||
url: /docs/
|
||||
|
||||
- title: "Quick-start guide"
|
||||
@ -18,28 +19,50 @@ docs:
|
||||
children:
|
||||
- title: "Quick-Start Guide"
|
||||
url: /docs/quick-start-guide/
|
||||
- title: "Structure"
|
||||
url: /docs/structure/
|
||||
- title: "Building"
|
||||
url: /docs/building/
|
||||
- title: "Communication interfaces"
|
||||
url: /docs/comm_interfaces/
|
||||
- title: "Architecture targets"
|
||||
url: /docs/simd_targets/
|
||||
- title: "Building on KNL"
|
||||
url: /docs/knl_build/
|
||||
|
||||
- title: Using GRID
|
||||
children:
|
||||
- title: "Running on KNL"
|
||||
url: /docs/running_knl/
|
||||
|
||||
- title: Development
|
||||
children:
|
||||
- title: "Reporting a bug"
|
||||
url: /docs/bug_report/
|
||||
- title: "Continuous integration"
|
||||
url: /docs/travis/
|
||||
|
||||
- title: API description
|
||||
children:
|
||||
- title: "Structure"
|
||||
url: /docs/structure/
|
||||
disable: "yes"
|
||||
- title: "SIMD classes"
|
||||
url: /docs/simd/
|
||||
disable: "yes"
|
||||
- title: "Grid classes"
|
||||
url: /docs/grid/
|
||||
disable: "yes"
|
||||
- title: "Tensor classes"
|
||||
url: /docs/tensor/
|
||||
disable: "yes"
|
||||
- title: "Lattice classes"
|
||||
url: /docs/lattice/
|
||||
disable: "yes"
|
||||
|
||||
|
||||
- title: "Lattice theories"
|
||||
children:
|
||||
- title : "Theories"
|
||||
url: /docs/theories/
|
||||
disable: "yes"
|
||||
- title: "HMC"
|
||||
url: /docs/theories/hmc/
|
||||
disable: "yes"
|
||||
|
@ -17,6 +17,6 @@
|
||||
|
||||
<!-- For all browsers -->
|
||||
<link rel="stylesheet" href="{{ base_path }}/assets/css/main.css">
|
||||
<link rel="stylesheet" href="{{ base_path }}/assets/icons/octicons/octicons.min.css">
|
||||
<link rel="stylesheet" href="{{ base_path }}/assets/icons/octicons/font/octicons.min.css">
|
||||
|
||||
<meta http-equiv="cleartype" content="on">
|
||||
|
@ -1,5 +1,6 @@
|
||||
<!-- start custom head snippets -->
|
||||
|
||||
<!-- insert favicons. use http://realfavicongenerator.net/ -->
|
||||
<link rel='shortcut icon' type='image/x-icon' href='{{ site.baseurl }}/images/favicon-32x32.png' />
|
||||
|
||||
<!-- end custom head snippets -->
|
10
_includes/image
Normal file
@ -0,0 +1,10 @@
|
||||
{% capture imagePath %}/{{ include.name }}{% endcapture %}
|
||||
{% if include.caption %}
|
||||
<figure>
|
||||
<img src="{{ site.baseurl }}/images{{ imagePath }}" {% if include.alt %} alt="{{ include.alt }}" {% endif %} {% if include.width %} width="{{ include.width }}" style="display: block; margin-left: auto; margin-right: auto" {% endif %}/>
|
||||
<figcaption>{{ include.caption }}</figcaption>
|
||||
</figure>
|
||||
{% else %}
|
||||
<img src="{{ site.baseurl }}/images{{ imagePath }}" {% if include.alt %} alt="{{ include.alt }}" {% endif %} {% if include.width %} width="{{ include.width }}" style="display: block; margin-left: auto; margin-right: auto" {% endif %}/>
|
||||
{% endif %}
|
||||
|
@ -13,8 +13,9 @@
|
||||
{% else %}
|
||||
{% assign domain = base_path %}
|
||||
{% endif %}
|
||||
<li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}">{{ link.title }}</a></li>
|
||||
<li class="masthead__menu-item"><a href="{{ domain }}{{ link.url }}"><span class="{{ link.icon }}"></span> {{ link.title }}</a></li>
|
||||
{% endfor %}
|
||||
<li class="masthead__menu-item"><a href="https://github.com/paboyle/Grid" title="Github repository page"><span class="mega-octicon octicon-mark-github vertical-middle"></span></a></li>
|
||||
</ul>
|
||||
<ul class="hidden-links hidden"></ul>
|
||||
</nav>
|
||||
|
@ -36,7 +36,13 @@
|
||||
{% assign active = "" %}
|
||||
{% endif %}
|
||||
|
||||
<li><a href="{{ domain }}{{ child.url }}" class="{{ active }}">{{ child.title }}</a></li>
|
||||
{% if child.disable == "yes" %}
|
||||
{% assign disable = "nav__noclick" %}
|
||||
{% else %}
|
||||
{% assign disable = "" %}
|
||||
{% endif %}
|
||||
|
||||
<li><a href="{{ domain }}{{ child.url }}" class="{{ disable }} {{ active }}">{{ child.title }}</a></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endif %}
|
||||
|
@ -1,8 +1,11 @@
|
||||
---
|
||||
layout: single
|
||||
layout: splash
|
||||
permalink: /about/
|
||||
author_profile: false
|
||||
title: "About"
|
||||
excerpt: "on the project and the authors"
|
||||
excerpt: "The project and the authors"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
---
|
||||
|
||||
{% include base_path %}
|
||||
|
@ -1,25 +0,0 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Welcome to the Grid documentation pages"
|
||||
header:
|
||||
overlay_color: "#333"
|
||||
cta_label: "Download documentation"
|
||||
cta_url: "https://www.google.com"
|
||||
sidebar:
|
||||
nav : docs
|
||||
permalink: /docs/
|
||||
---
|
||||
|
||||
{% include base_path %}
|
||||
|
||||
These are the *Grid* documentation pages.
|
||||
|
||||
```c_cpp
|
||||
void test() {
|
||||
console.log("notice the blank line before this function?");
|
||||
}
|
||||
```
|
||||
|
||||
{% include paginator.html %}
|
33
_pages/docs/bug_report.md
Normal file
@ -0,0 +1,33 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Reporting a bug"
|
||||
header:
|
||||
overlay_color: "#C70039"
|
||||
permalink: /docs/bug_report/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include base_path %}
|
||||
|
||||
{% octicon alert height:32 class:"right left" aria-label:hi %} __To help us tracking and solving more efficiently issues with Grid, please report problems using the [issue system of GitHub](https://github.com/paboyle/Grid/issues) rather than sending emails to Grid developers.__
|
||||
|
||||
We also suggest to have a brief look at the [closed issues pages](https://github.com/paboyle/Grid/issues?q=is%3Aissue+is%3Aclosed) and check whether the problem has been addressed already.
|
||||
|
||||
{% capture notice-text %}
|
||||
1. Check that the code is pointing to the `HEAD` of `develop` or any commit in `master` which is tagged with a version number.
|
||||
2. Give a description of the target platform (CPU, network, compiler).
|
||||
3. Give the exact `configure` command used.
|
||||
4. Attach `config.log`.
|
||||
5. Attach `config.summary`.
|
||||
6. Attach the output of `make V=1`.
|
||||
7. Describe the issue and any previous attempt to solve it. If relevant, show how to reproduce the issue using a minimal working example.
|
||||
{% endcapture %}
|
||||
|
||||
<div class="notice--warning">
|
||||
<h4>When you file an issue, please go though the following checklist:</h4>
|
||||
{{ notice-text | markdownify }}
|
||||
</div>
|
||||
|
||||
{% include paginator.html %}
|
25
_pages/docs/comm_interfaces.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Supported communication interfaces"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
permalink: /docs/comm_interfaces/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include base_path %}
|
||||
|
||||
The following options can be use with the `--enable-comms=` option to target different communication interfaces:
|
||||
|
||||
| `<comm>` | Description |
|
||||
| ------------- | -------------------------------------------- |
|
||||
| `none` | no communications |
|
||||
| `mpi[-auto]` | MPI communications |
|
||||
| `mpi3[-auto]` | MPI communications using [MPI-3 shared memory](https://software.intel.com/sites/default/files/managed/eb/54/An_Introduction_to_MPI-3.pdf) |
|
||||
| `shmem ` | Cray SHMEM communications |
|
||||
|
||||
For `mpi` and `mpi3` the optional `-auto` suffix instructs the `configure` scripts to determine all the necessary compilation and linking flags. This is done by extracting the informations from the MPI wrapper specified in the environment variable `MPICXX` (if not specified `configure` will scan though a list of default names).
|
||||
|
||||
{% include paginator.html %}
|
49
_pages/docs/knl_build.md
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Building on a Intel Knights Landing"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
permalink: /docs/knl_build/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include base_path %}
|
||||
The information included in this page has been updated on *November 2016* and it is valid for the release version 0.6.0.
|
||||
|
||||
|
||||
The following configuration is recommended for the [Intel Knights Landing](http://ark.intel.com/products/codename/48999/Knights-Landing) platform:
|
||||
|
||||
``` text
|
||||
../configure --enable-precision=double\
|
||||
--enable-simd=KNL \
|
||||
--enable-comms=mpi3-auto \
|
||||
--with-gmp=<path> \
|
||||
--with-mpfr=<path> \
|
||||
--enable-mkl \
|
||||
CXX=icpc MPICXX=mpiicpc
|
||||
```
|
||||
|
||||
where `<path>` is the UNIX prefix where GMP and MPFR are installed. If you are working on a Cray machine that does not use the `mpiicpc` wrapper, please use:
|
||||
|
||||
``` text
|
||||
../configure --enable-precision=double\
|
||||
--enable-simd=KNL \
|
||||
--enable-comms=mpi3 \
|
||||
--with-gmp=<path> \
|
||||
--with-mpfr=<path> \
|
||||
--enable-mkl \
|
||||
CXX=CC CC=cc
|
||||
```
|
||||
|
||||
|
||||
#### Notes
|
||||
- [GMP](https://gmplib.org/) is the GNU Multiple Precision Library.
|
||||
- [MPFR](http://www.mpfr.org/) is a C library for multiple-precision floating-point computations with correct rounding.
|
||||
- Both libaries are necessary for the RHMC support.
|
||||
|
||||
|
||||
|
||||
|
||||
{% include paginator.html %}
|
86
_pages/docs/quick-start-guide.md
Normal file
@ -0,0 +1,86 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Quick start guide"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
permalink: /docs/quick-start-guide/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include toc icon="gears" title="Quick-start" %}
|
||||
|
||||
Please send all pull requests to the `develop` branch.
|
||||
{: .notice--warning}
|
||||
|
||||
## Quick start
|
||||
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 as in this example (here from a build directory):
|
||||
|
||||
``` bash
|
||||
mkdir build
|
||||
cd build
|
||||
../configure --enable-precision=double --enable-simd=AVX --enable-comms=mpi-auto --prefix=<path>
|
||||
```
|
||||
|
||||
where `--enable-precision=` sets the default precision,
|
||||
`--enable-simd=` sets the SIMD type, `--enable-
|
||||
comms=`, and `<path>` should be replaced by the prefix path where you want to
|
||||
install Grid (optional). Other options are detailed in the next section, you can also 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 #this is optional
|
||||
```
|
||||
|
||||
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 `<subdir>` you can execute:
|
||||
|
||||
``` bash
|
||||
make -C tests/<subdir> tests
|
||||
```
|
||||
|
||||
## Build configuration options
|
||||
|
||||
A full list of configurations options is available with the `./configure --help` command:
|
||||
|
||||
Here we report the more common ones.
|
||||
|
||||
- `--prefix=<path>`: installation prefix for Grid.
|
||||
- `--with-gmp=<path>`: look for GMP in the UNIX prefix `<path>`
|
||||
- `--with-mpfr=<path>`: look for MPFR in the UNIX prefix `<path>`
|
||||
- `--with-fftw=<path>`: look for FFTW in the UNIX prefix `<path>`
|
||||
- `--enable-lapack[=<path>]`: enable LAPACK support in Lanczos eigensolver. A UNIX prefix containing the library can be specified (optional).
|
||||
- `--enable-mkl[=<path>]`: use Intel MKL for FFT (and LAPACK if enabled) routines. A UNIX prefix containing the library can be specified (optional).
|
||||
- `--enable-numa`: enable [numa first touch policy](http://queue.acm.org/detail.cfm?id=2513149) optimization (default `no`)
|
||||
- `--enable-simd=<code>`: setup Grid for the SIMD target `<code>` (default: `GEN`). [List of possible SIMD targets](/Grid/docs/simd_targets/).
|
||||
- `--enable-precision={single|double}`: set the default precision (default: `double`).
|
||||
- `--enable-precision=<comm>`: Use `<comm>` for message passing (default: `none`). [List of possible comm targets](/Grid/docs/comm_interfaces/).
|
||||
- `--enable-rng={ranlux48|mt19937}`: choose the RNG (default: `ranlux48 `).
|
||||
- `--disable-timers`: disable system dependent high-resolution timers.
|
||||
- `--enable-chroma`: enable Chroma regression tests. A compiled version of Chroma is assumed to be present.
|
||||
|
||||
|
||||
More details on the *Getting started* menu entries on the left.
|
||||
|
||||
|
||||
This document was updated on November 2016.
|
||||
{: .notice}
|
||||
|
65
_pages/docs/running_knl.md
Normal file
@ -0,0 +1,65 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Running on a Intel Knights Landing"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
permalink: /docs/running_knl/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include base_path %}
|
||||
{% include toc icon="gears" title="Contents" %}
|
||||
|
||||
These are few suggestions in order to get the best performance on the Intel Knights Landing (KNL).
|
||||
|
||||
### Bind the memory allocation to the MCDRAM NUMA node
|
||||
|
||||
The KNL has two memory systems, the DDR4 (~90 GFlops/s) and the High Bandwidth Memory (MCDRAM, ~400 Gflops/s).
|
||||
Each of the two memory system is attached to a different [NUMA context](https://software.intel.com/en-us/articles/optimizing-applications-for-numa).
|
||||
|
||||
On a KNL node the command `numactl --hardware` will report which NUMA context is connected to the faster MCDRAM.
|
||||
A typical report looks like this
|
||||
|
||||
``` text
|
||||
node 0 size: 98178 MB
|
||||
node 0 free: 92899 MB
|
||||
node 1 cpus:
|
||||
node 1 size: 16384 MB
|
||||
node 1 free: 15926 MB
|
||||
```
|
||||
|
||||
In this case the node 1 is related to the 16GB MCDRAM (this is the typical situation on KNLs)
|
||||
|
||||
To bind the memory allocation to NUMA node 1 use
|
||||
|
||||
``` bash
|
||||
numactl --membind 1 ./your-executable
|
||||
```
|
||||
|
||||
### Controlling threading
|
||||
|
||||
The number of threads can be set in GRID at runtime by the flag
|
||||
|
||||
``` text
|
||||
--threads <#threads>
|
||||
```
|
||||
|
||||
A finer control can be achieved using the environment variable `KMP_HW_SUBSETS` (or the deprecated `KMP_PLACE_THREADS`).
|
||||
|
||||
From the [Intel developer guide](https://software.intel.com/en-us/node/684313):
|
||||
|
||||
>The KMP_HW_SUBSETS variable controls the hardware resource that will be used by the program. This variable specifies the number of sockets to use, how many cores to use per socket and how many threads to assign per core. For example, on Intel® Xeon Phi™ coprocessors, while each coprocessor can take up to four threads, specifying fewer than four threads per core may result in a better performance. While specifying two threads per core often yields better performance than one thread per core, specifying three or four threads per core may or may not improve the performance. This variable enables you to conveniently measure the performance of up to four threads per core.
|
||||
|
||||
A typical setting for the best performance on a single node is to use **62 cores with 1 threads per code**, on the bash shell this is set by
|
||||
|
||||
``` bash
|
||||
export KMP_HW_SUBSETS=62c,1t
|
||||
```
|
||||
|
||||
The information included in this page has been updated on *November 2016* and it is valid for the release version 0.6.0.
|
||||
{: .notice}
|
||||
|
||||
|
||||
{% include paginator.html %}
|
41
_pages/docs/simd_targets.md
Normal file
@ -0,0 +1,41 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Supported SIMD architectures"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
permalink: /docs/simd_targets/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include base_path %}
|
||||
|
||||
The following options can be used for `--enable-simd=` flag to target different SIMD instruction sets:
|
||||
|
||||
| `<code>` | Description |
|
||||
| ----------- | -------------------------------------- |
|
||||
| `GEN` | generic portable vector code |
|
||||
| `SSE4` | SSE 4.2 (128 bit) |
|
||||
| `AVX` | AVX (256 bit) |
|
||||
| `AVXFMA` | AVX (256 bit) + FMA |
|
||||
| `AVXFMA4` | AVX (256 bit) + FMA4 |
|
||||
| `AVX2` | AVX 2 (256 bit) |
|
||||
| `AVX512` | AVX 512 bit |
|
||||
| `QPX` | QPX (256 bit) |
|
||||
|
||||
Alternatively, some CPU codenames can be directly used:
|
||||
|
||||
| `<code>` | Description |
|
||||
| ----------- | -------------------------------------- |
|
||||
| `KNC` | [Intel Xeon Phi codename Knights Corner](http://ark.intel.com/products/codename/57721/Knights-Corner) |
|
||||
| `KNL` | [Intel Xeon Phi codename Knights Landing](http://ark.intel.com/products/codename/48999/Knights-Landing) |
|
||||
| `BGQ` | Blue Gene/Q |
|
||||
|
||||
#### Notes (November 2016):
|
||||
- We are currently supporting AVX512 only for the Intel compiler. GCC and clang will appear in future versions, if the compilers provide sufficient support.
|
||||
- For BG/Q only [bgclang](http://trac.alcf.anl.gov/projects/llvm-bgq) is supported. We do not presently plan to support more compilers for this platform.
|
||||
- BG/Q performances are currently rather poor. This is being investigated for future versions.
|
||||
|
||||
|
||||
{% include paginator.html %}
|
24
_pages/docs/travis.md
Normal file
@ -0,0 +1,24 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Travis Continous Integration framework"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
permalink: /docs/travis/
|
||||
sidebar:
|
||||
nav : docs
|
||||
---
|
||||
{% include base_path %}
|
||||
<!-- {% include toc icon="gears" title="Helpers" %} -->
|
||||
|
||||
For continous testing of every commit we use the [Travis CI framework](https://travis-ci.org/).
|
||||
|
||||
The current status is
|
||||
|
||||
| Branch | Status |
|
||||
|---------- | ------ |
|
||||
| [Master](https://travis-ci.org/paboyle/Grid) | [](https://travis-ci.org/paboyle/Grid) |
|
||||
| [Develop](https://travis-ci.org/paboyle/Grid) | [](https://travis-ci.org/paboyle/Grid) |
|
||||
|
||||
{% include paginator.html %}
|
25
_pages/docs_main.md
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Documentation"
|
||||
author_profile: false
|
||||
excerpt: "Welcome to the Grid documentation pages"
|
||||
header:
|
||||
overlay_color: "#5DADE2"
|
||||
#cta_label: "Download documentation"
|
||||
#cta_url: "https://www.google.com"
|
||||
sidebar:
|
||||
nav : docs
|
||||
permalink: /docs/
|
||||
---
|
||||
|
||||
{% include base_path %}
|
||||
|
||||
We are currently working on the full documentation.
|
||||
|
||||
Use the sidebar on the left to navigate.
|
||||
|
||||
_Nov 2016 : The API description and Lattice Theories sections in the sidebar are work in progress_.
|
||||
|
||||
|
||||
|
||||
{% include paginator.html %}
|
@ -1,108 +0,0 @@
|
||||
---
|
||||
layout: single
|
||||
title : "Quick start guide"
|
||||
author_profile: false
|
||||
excerpt: "How to install"
|
||||
header:
|
||||
overlay_color: "#333"
|
||||
permalink: /docs/quick-start-guide/
|
||||
---
|
||||
### 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 as in this example (here from a build directory):
|
||||
|
||||
``` bash
|
||||
mkdir build; cd build
|
||||
../configure --enable-precision=double --enable-simd=AVX --enable-comms=mpi-auto --prefix=<path>
|
||||
```
|
||||
|
||||
The list of possible options from the `./configure --help` command is
|
||||
|
||||
``` text
|
||||
Optional Features:
|
||||
--disable-option-checking ignore unrecognized --enable/--with options
|
||||
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
|
||||
--enable-FEATURE[=ARG] include FEATURE [ARG=yes]
|
||||
--enable-silent-rules less verbose build output (undo: "make V=1")
|
||||
--disable-silent-rules verbose build output (undo: "make V=0")
|
||||
--enable-dependency-tracking
|
||||
do not reject slow dependency extractors
|
||||
--disable-dependency-tracking
|
||||
speeds up one-time build
|
||||
--disable-openmp do not use OpenMP
|
||||
--enable-lapack=yes|no|prefix
|
||||
enable LAPACK
|
||||
--enable-numa=yes|no|prefix
|
||||
enable first touch numa opt
|
||||
--enable-simd=SSE4|AVX|AVXFMA4|AVXFMA|AVX2|AVX512|AVX512MIC|IMCI|KNL|KNC
|
||||
Select instructions to be SSE4.0, AVX 1.0, AVX
|
||||
2.0+FMA, AVX 512, IMCI
|
||||
--enable-precision=single|double
|
||||
Select default word size of Real
|
||||
--enable-comms=none|mpi|mpi-auto|shmem
|
||||
Select communications
|
||||
--enable-rng=ranlux48|mt19937
|
||||
Select Random Number Generator to be used
|
||||
--enable-timers Enable system dependent high res timers
|
||||
--enable-chroma Expect chroma compiled under c++11
|
||||
--enable-doxygen enable documentation generation with doxygen (auto)
|
||||
--enable-dot use 'dot' to generate graphs in doxygen (auto)
|
||||
--enable-html-docs enable HTML generation with doxygen (yes)
|
||||
--enable-latex-docs enable LaTeX documentation generation with doxygen
|
||||
(no)
|
||||
```
|
||||
|
||||
|
||||
and `<path>` should be replaced by the prefix path where you want to
|
||||
install Grid. The `mpi-auto` communication option let `configure` to determine
|
||||
automatically how to link to MPI.
|
||||
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 `<subdir>` you can execute:
|
||||
|
||||
``` bash
|
||||
make -C tests/<subdir> 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) |
|
||||
|
@ -343,6 +343,11 @@
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
|
||||
.nav__noclick {
|
||||
pointer-events: none;
|
||||
color: #ccc;
|
||||
}
|
||||
}
|
||||
|
||||
.nav__title {
|
||||
@ -365,6 +370,11 @@
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*
|
||||
Table of contents navigation
|
||||
========================================================================== */
|
||||
|
BIN
images/GridLogo.png
Normal file
After Width: | Height: | Size: 92 KiB |
BIN
images/android-icon-144x144.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
images/android-icon-192x192.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
images/android-icon-36x36.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
images/android-icon-48x48.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
images/android-icon-72x72.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
images/android-icon-96x96.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
images/apple-icon-114x114.png
Normal file
After Width: | Height: | Size: 5.7 KiB |
BIN
images/apple-icon-120x120.png
Normal file
After Width: | Height: | Size: 6.0 KiB |
BIN
images/apple-icon-144x144.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
images/apple-icon-152x152.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
images/apple-icon-180x180.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
images/apple-icon-57x57.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
images/apple-icon-60x60.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
BIN
images/apple-icon-72x72.png
Normal file
After Width: | Height: | Size: 3.5 KiB |
BIN
images/apple-icon-76x76.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
BIN
images/apple-icon-precomposed.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
images/apple-icon.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
2
images/browserconfig.xml
Normal file
@ -0,0 +1,2 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
|
BIN
images/favicon-16x16.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
images/favicon-32x32.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
images/favicon-96x96.png
Normal file
After Width: | Height: | Size: 4.6 KiB |
BIN
images/favicon.ico
Normal file
After Width: | Height: | Size: 1.1 KiB |
41
images/manifest.json
Normal file
@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "App",
|
||||
"icons": [
|
||||
{
|
||||
"src": "\/android-icon-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "\/android-icon-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
}
|
||||
]
|
||||
}
|
BIN
images/ms-icon-144x144.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
images/ms-icon-150x150.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
images/ms-icon-310x310.png
Normal file
After Width: | Height: | Size: 20 KiB |
BIN
images/ms-icon-70x70.png
Normal file
After Width: | Height: | Size: 3.4 KiB |
@ -6,14 +6,15 @@ classes:
|
||||
excerpt: "Data parallel C++ mathematical object library."
|
||||
permalink: /
|
||||
header:
|
||||
overlay_color: "#5e616c"
|
||||
cta_label: "Github page"
|
||||
cta_url: "https://github.com/paboyle/Grid"
|
||||
overlay_color: "#5DADE2"
|
||||
intro:
|
||||
- excerpt: 'Get notified when we add new stuff [<i class="fa fa-github"></i> watch project](https://github.com/paboyle/Grid/subscription){: .btn .btn--info}'
|
||||
downloads:
|
||||
- excerpt: 'Downloads [<i class="mega-octicon octicon-desktop-download"></i> Develop branch ZIP](https://github.com/paboyle/Grid/archive/develop.zip){: .btn .btn--large .btn--inverse}'
|
||||
---
|
||||
|
||||
{% include feature_row id="intro" type="center" %}
|
||||
{% include image name="GridLogo.png" width="400px" %}
|
||||
|
||||
{% include feature_row id="downloads" type="center" %}
|
||||
{% include feature_row id="intro" type="center" %}
|
||||
|
||||
|