-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmdimechanic.yml
102 lines (87 loc) · 2.75 KB
/
mdimechanic.yml
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
code_name: 'INQ'
docker:
image_name: 'mdi/inq'
build_image:
# Install apt-get packages
- apt-get update
- apt-get install -y wget libblas-dev liblapack-dev libfftw3-dev git cmake pkg-config vim
- apt-get clean
- apt-get purge
- rm -rf /tmp/* /var/tmp/* /var/lib/apt/lists/*
# Custom compile Boost
# Installing boost via apt-get will also install OpenMPI, but we want to use MPICH
- wget -O boost_1_78_0.tar.gz https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.gz
- tar -xvf boost_1_78_0.tar.gz
- cd boost_1_78_0
- ./bootstrap.sh
- echo "using mpi ;" >> project-config.jam
- ./b2 install
- cd ..
- rm boost_1_78_0.tar.gz
- rm -rf boost_1_78_0
# Install pip packages
- pip install pymdi
- pip install mpi4py
build_engine:
# Obtain a clone of INQ
- |
if [ ! -d "build/inq" ]; then
git clone --branch mdi --recurse-submodules https://gitlab.com/taylor-a-barnes/inq.git build/inq
fi
- cd build/inq
- mkdir -p build
- cd build
# Only configure once, because it is a long process
- |
if [ ! -d "/repo/build/install" ]; then
../configure --prefix=/repo/build/install
fi
- make -j 4
- make install
validate_engine:
- cd build/inq/build/tests
- ./h2o_ground_state
run_scripts:
test:
containers:
container1:
image: 'mdi/inq'
script:
- cd build/inq/build/tests
- ./h2o_ground_state
plugin:
containers:
container1:
image: 'mdi/inq'
script:
- cd tests/driver
- mpiexec -n 1 python plugin_driver.py --plugin_name "inqmdi" --mdi "-role DRIVER -name driver -method LINK -plugin_path /repo/build/inq/build/examples"
nitrogen:
containers:
container1:
image: 'mdi/inq'
script:
- cd build/inq/build/examples
- ./nitrogen_paper
plugin_driver:
containers:
container1:
image: 'mdi/inq'
script:
- cd build/inq/build/examples
- mpiexec -n 2 ./inq_mdi_driver -mdi "-role DRIVER -name driver -method LINK -plugin_path /repo/build/inq/build/examples" -driver_nranks 0 -plugin_nranks 2 -plugin_name inqmdi
engine_tests:
# Provide at least one example input that can be used to test your code's MDI functionality
script:
- cd build/inq/build/examples
- ./inq_mdi -mdi "${MDI_OPTIONS}"
#- cd tests/driver
#- python plugin_driver.py -mdi "-role DRIVER -name driver -method LINK -plugin_path /repo/build/inq/build/examples"
test_drivers:
test_driver:
script:
- cd tests/driver
- python driver.py -mdi "-role DRIVER -name driver -method TCP -port 8021"
plugin_driver:
script:
- sleep 30