summaryrefslogtreecommitdiff
path: root/benchmarks/CUDA/DG/readme
blob: cd2e7e67f3fc79e791ce827e1dda3d1dc1a0998c (plain)
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
# ------------------------------------------------------------------------
# see the copyright information for MIDG in license.midg
# MIDG: a MIni Discontinuous Galerkin solver for CPUs or GPUS with MPI parallelism
# Copyright (c) 2008, Tim Warburton
# http://www.nudg.org
# ------------------------------------------------------------------------

# The following simulation codes all run in parallel
# using ParMetis for mesh partitioning and MPI for
# parallel computation.

# First compile the ParMetis library
cd 3rdParty/ParMetis-3.1/
make

# you may need to adjust the paths for the MPI compilers in the Makefiles

# ------------------------------------------------------------------------

# To compile the CPU/MPI only codes:

# CPU+MPI+2d time-domain Maxwells (TM mode) with N=6 
make -f MakefileCPU2d N=6 clean
make -f MakefileCPU2d N=6

# CPU+MPI+3d timw-domain Maxwells with N=6 
make -f MakefileCPU3d N=6 clean
make -f MakefileCPU3d N=6

# ------------------------------------------------------------------------

# To compile the GPU/MPI only codes:

# NOTE FOR GPU CODES: 
# 1. you may wish to change the device assignment made 
# near the start of the main function in MaxwellsDriver#d.m
# 2. you will need to have nvidia's cuda framework installed
#    and may need to adjust the path that the Makefiles use
#    to search for the nvcc compiler, libraries and include 
#    files

# GPU+MPI+2d time-domain Maxwells (TM mode) with N=6 
make -f MakefileGPU2d N=6 clean
make -f MakefileGPU2d N=6

# GPU+MPI+3d timw-domain Maxwells with N=6 
make -f MakefileGPU3d N=6 clean
make -f MakefileGPU3d N=6


# ------------------------------------------------------------------------

# To run the various configurations (in serial) with sample meshes:

./MaxwellsCPU2d Meshes/block2.neu
./MaxwellsCPU3d Meshes/cubeK268.neu
./MaxwellsGPU2d Meshes/block2.neu
./MaxwellsGPU3d Meshes/cubeK268.neu

# ------------------------------------------------------------------------

# To run the various configurations (in parallel using MPI) with sample meshes:

mpirun -np 2 ./MaxwellsCPU2d Meshes/block2.neu
mpirun -np 2 ./MaxwellsCPU3d Meshes/cubeK268.neu

mpirun -np 2 ./MaxwellsGPU2d Meshes/block2.neu
mpirun -np 2 ./MaxwellsGPU3d Meshes/cubeK268.neu

# When running with multiple GPUs you may wish to adjust the device 
# used by each cpu.

# ------------------------------------------------------------------------