This repository has been archived by the owner on Apr 22, 2020. It is now read-only.
forked from OP-DSL/OPS
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME
75 lines (52 loc) · 2.32 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
OPS is an API with associated libraries and pre-processors to generate
parallel executables for applications on mulit-block structured grids.
This repository contains the implementation of the run-time library
and the pre-processor, and is structured as follows:
|
`- ops: Implementation of the user and run-time OPS C/C++ APIs
|
`- apps: Application examples in C and Fortran
| These are examples of user application code and also include
| the target code an OPS pre-processor should produce to correctly
| use the OPS run-time library.
|
`- translator: Python OPS pre-processor for C/C++ API
|
`- doc: Documentation
Installation
============
1. Set up environmental variables:
OPS_COMPILER - compiler to be used (Currently supports Intel, PGI and
Cray compilers, but others can be easily incorporated by extending the
Makefiles used in step 2 and 3)
OPS_INSTALL_PATH - Installation directory of OPS/ops
CUDA_INSTALL_PATH - Installation directory of CUDA,
usually /usr/local/cuda (to build CUDA libs and applications)
OPENCL_INSTALL_PATH - Installation directory of OpenCL,
usually /usr/local/cuda for NVIDIA OpenCL implementation
(to build OpenCL libs and applications)
MPI_INSTALL_PATH - Installation directory of MPI (to build MPI
based distributed memory libs and applications)
HDF5_INSTALL_PATH - Installation directory of HDF5
(to support HDF5 based File I/O)
See example scripts (e.g. source_intel, source_pgi_15.10, source_cray)
under OPS/ops/ that sets up the environment for building with various
compilers (Intel, PGI, Cray).
2. Build OPS back-end libraries.
For C/C++ back-end use Makefile under OPS/ops/c (modify Makefile if required).
The libraries will be built in OPS/ops/c/lib
cd $OPS_INSTALL_PATH/c
make
For Fortran back-end use Makefile under OPS/ops/fortran
(modify Makefile if required). The libraries will be built in OPS/ops/fortran/lib
cd $OPS_INSTALL_PATH/fortran
make
3. Build OPS example applications
For example to build CloverLeaf_3D under OPS/apps/c/CloverLeaf_3D
cd ../apps/c/Cloverleaf_3D/
make
How to cite
===========
Istvan Z Reguly, G.R Mudalige, Mike B Giles. Loop Tiling in Large-Scale
Stencil Codes at Run-time with OPS. (2017) IEEE Transactions on Parallel
and Distributed Systems. (http://dx.doi.org/10.1109/TPDS.2017.2778161)