-
Notifications
You must be signed in to change notification settings - Fork 26
/
.travis.yml
162 lines (154 loc) · 7.34 KB
/
.travis.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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
language: c
cache:
directories:
- $HOME/local
sudo: required
env:
matrix:
- fast_finish: true
- gcc
COVERAGE=On
addons:
apt:
update: true
sources:
- ubuntu-toolchain-r-test
packages:
- cmake
- cmake-data
- libelf-dev
- pkg-config
- libdwarf-dev
- autoconf
- automake
- libtool
- libboost-all-dev
- swig
- lcov
- graphviz
- munge
- gfortran
- gdb
- python3
- g++-8
env:
global:
- export PATH=$HOME/local/bin:$PATH
- export LD_LIBRARY_PATH=$HOME/local/lib:$LD_LIBRARY_PATH
before_install:
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_date_time.so /usr/lib/libboost_date_time-mt.so
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_thread.so /usr/lib/libboost_thread-mt.so
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_filesystem.so /usr/lib/libboost_filesystem-mt.so
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_program_options.so /usr/lib/libboost_program_options-mt.so
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_regex.so /usr/lib/libboost_regex-mt.so
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_system.so /usr/lib/libboost_system-mt.so
- sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_wave.so /usr/lib/libboost_wave-mt.so
- ls -l /usr/lib
- which python
- gem install coveralls-lcov
- pip install --user cpp-coveralls
- eval $(./scripts/travis-dep-builder.sh --printenv)
# travis has a 50 minute timeout for any single command, so we break up the build so it will partially cache as needed. ompi+other can be done in one session, dyninst requires its own.
# - ./scripts/travis-dep-builder.sh --cachedir=$HOME/local/.cache --components=ompi
# - rm -rf $HOME/local/.cache
- ./scripts/travis-dep-builder.sh --cachedir=$HOME/local/.cache --components=impi
- ./scripts/travis-dep-builder.sh --cachedir=$HOME/local/.cache --components=other
- ./scripts/travis-dep-builder.sh --cachedir=$HOME/local/.cache --components=dyninst
script:
- source $HOME/local/bin/mpivars.sh
- ls -l $HOME/local
- ls -l $HOME/local/lib
- ls -l $HOME/local/bin
- echo $PATH
- ./bootstrap
- export LDFLAGS=-Wl,-no-as-needed
# - if test "$COVERAGE" = "On" ; then export CFLAGS="-coverage" ; export CXXFLAGS="-coverage" ; fi
- echo $PATH
- ./configure --prefix=$HOME/stat --with-stackwalker=$HOME/local --with-mrnet=$HOME/local --with-graphlib=$HOME/local --with-launchmon=$HOME/local --enable-debug --enable-code-coverage --disable-examples || cat config.log
- cat config.log
- make && make install
- mkdir -p $HOME/stat/bin
- /usr/bin/mpicc -g examples/src/mpi_ringtopo.c -o $HOME/stat/bin/mpi_ringtopo.out
- $HOME/local/bin/mpicc -g examples/src/mpi_ringtopo.c -o $HOME/stat/share/stat/examples/bin/mpi_ringtopo
- $HOME/local/bin/mpicc -g examples/src/rank_test.c -o $HOME/stat/share/stat/examples/bin/rank_test
- $HOME/local/bin/mpif90 -g examples/src/hw.F -o $HOME/stat/share/stat/examples/bin/hw
after_script:
- source $HOME/local/bin/mpivars.sh
- ls -l $HOME/stat/bin
- echo $PATH
- $HOME/stat/bin/stat-cl -h
- export STAT_XPLAT_RSH=rsh
- export XPLAT_RSH=rsh
- export XPLAT_RSH_ARGS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no"
- ssh-keygen -N '' -t rsa -f $HOME/.ssh/id_rsa
- cat $HOME/.ssh/id_rsa.pub > $HOME/.ssh/authorized_keys
- ssh-keygen -N '' -t dsa -f $HOME/.ssh/id_dsa
- cat $HOME/.ssh/id_dsa.pub >> $HOME/.ssh/authorized_keys
# - rsh `hostname` hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- rsh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no `hostname` hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- echo -e "Host $HOSTNAME\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
# - export MRNET_OUTPUT_LEVEL=5
- echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope
- sudo ls -l /proc/sys/kernel/yama/ptrace_scope
- sudo cat /proc/sys/kernel/yama/ptrace_scope
- $HOME/stat/share/stat/examples/bin/rank_test 10 & $HOME/stat/bin/stat-cl -s 2 -l FE -l BE -L $HOME -I $!
- cat stat_results/output.0000/output.0000.top
- cat stat_results/output.0000/output.0000.fulltop
# - cat $HOME/$HOSTNAME.STAT.log
# - cat $HOME/$HOSTNAME.STATD.log
- cat stat_results/output.0000/00_output.0000.2D.dot
- cat stat_results/output.0000/01_output.0000.2D.dot
- cat stat_results/output.0000/02_output.0000.2D.dot
- cat stat_results/output.0000/03_output.0000.2D.dot
- cat stat_results/output.0000/04_output.0000.3D.dot
- which mpirun
- mpirun --version
- export LMON_FE_ENGINE_TIMEOUT=20
- ping -c 1 localhost
- rsh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no `hostname` hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no `hostname` hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- export MYHN=`hostname`
- ping -c 1 $MYHN
- rsh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $MYHN hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no $MYHN hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- alias ssh='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
- ssh $MYHN hostname & export RSHPID=$! ; sleep 5; kill -9 $RSHPID
- /home/travis/local/bin/mpiexec.hydra -n 4 $HOME/stat/share/stat/examples/bin/mpi_ringtopo 40 &
#- /home/travis/local/bin/mpirun -n 4 $HOME/stat/share/stat/examples/bin/mpi_ringtopo 40 &
- export MPIRUNPID=$!
- echo $MPIRUNPID
- sleep 5
- ps xww
- MPIRUNPID=`ps xww | grep mpiexec.hydra | head -n 1 | cut -f 1 -d " "`
- echo $MPIRUNPID
- $HOME/stat/bin/stat-cl -s 2 -l FE -l BE -L $HOME $MPIRUNPID
- sleep 45
- cat stat_results/mpi_ringtopo.0000/mpi_ringtopo.0000.top
- cat stat_results/mpi_ringtopo.0000/mpi_ringtopo.0000.fulltop
- cat stat_results/mpi_ringtopo.0000/00_mpi_ringtopo.0000.2D.dot
- cat stat_results/mpi_ringtopo.0000/01_mpi_ringtopo.0000.2D.dot
- cat stat_results/mpi_ringtopo.0000/02_mpi_ringtopo.0000.2D.dot
- cat stat_results/mpi_ringtopo.0000/03_mpi_ringtopo.0000.2D.dot
- cat stat_results/mpi_ringtopo.0000/04_mpi_ringtopo.0000.3D.dot
- ps xww
- $HOME/stat/bin/stat-cl -s 5 -l FE -l BE -L $HOME -C $HOME/local/bin/mpiexec.hydra -n 4 $HOME/stat/share/stat/examples/bin/mpi_ringtopo 40 &
- ps xww
- sleep 10
- ps xww
- sleep 41
- kill -18 $!
- ps x | grep mpiexec.hydra | grep -v grep | cut -f 1 -d " " | xargs kill -18
- cat stat_results/mpi_ringtopo.0001/mpi_ringtopo.0001.top
- cat stat_results/mpi_ringtopo.0001/mpi_ringtopo.0001.fulltop
- cat stat_results/mpi_ringtopo.0001/00_mpi_ringtopo.0001.2D.dot
- cat stat_results/mpi_ringtopo.0001/01_mpi_ringtopo.0001.2D.dot
- cat stat_results/mpi_ringtopo.0001/02_mpi_ringtopo.0001.2D.dot
- cat stat_results/mpi_ringtopo.0001/03_mpi_ringtopo.0001.2D.dot
- cat stat_results/mpi_ringtopo.0001/04_mpi_ringtopo.0001.3D.dot
# The script test may also hang with openmpi-2.0.3. This appears to be a race condition when deleting the stat_fe object
# - $HOME/stat/bin/stat-script $HOME/stat/share/stat/examples/bin/script_test.py -l $HOME/local/bin/mpiexec.hydra || echo "failed with $?"
- ls -lt stat_results
- bash <(curl -s https://codecov.io/bash)
- coveralls --exclude lib --exclude tests -i ./src --gcov-options '\-lp'
#- if test "$COVERAGE" = "On" ; then bash <(curl -s https://codecov.io/bash) ; fi
- echo 'done'