219 | | |
220 | | * If you're still reading this...awesome. The next step is building babel. I prefer to build out of the development repository since I can then commit changes back quicker if I find something that needs fixing. I will assume you have an account. If you do not have one contact Tom Epperly at llnl. |
221 | | |
222 | | * For now build without Java and without any Fortran variant. If we bring Impact (a Fortran code) back into the mix, we will have to address this. |
223 | | {{{ |
224 | | >>svn co svn+ssh://svn.cca-forum.org/svn/babel/trunk babelDev |
225 | | >>cd babelDev |
226 | | >>./autotool_rebuild.sh |
227 | | >>./configure CC=mpixlc CXX=mpixlcxx FC=mpixlf90 F77=mpixlf77 --prefix=$BABEL_INSTALL --host=powerpc-bgp-linux-gnu \ |
228 | | --without-sidlx \ |
229 | | --with-gcc=no --enable-python=/bgsys/drivers/ppcfloor/gnu-linux/bin/python --with-libxml2=$LIBXML2_LOC \ |
230 | | LDFLAGS=-qnostaticlink --enable-shared --disable-static host_alias=powerpc-bgp-linux-gnu --target=powerpc64-ibm-bgp \ |
231 | | --with-ltdl-lib=$LIBTOOL_LOCATION/lib --with-ltdl-include=$LIBTOOL_LOCATION/include --without-libparsifal \ |
232 | | PYTHONPATH=/soft/apps/python/python-2.6-cnk-gcc/numpy-1.3.0/lib/python2.6/site-packages CPP="gcc -E" \ |
233 | | target_alias=powerpc64-ibm-bgp --enable-fortran03=yes --enable-fortran90=yes --enable-fortran77=yes --enable-java=no \ |
234 | | --with-arch=IBMXL --with-F90-vendor=IBMXL |
235 | | >>./contrib/bgpSurveyorLibtoolFix.sh |
236 | | >>make ; make install |
237 | | }}} |
238 | | |
239 | | * The build and install should have proceeded without error. |
240 | | |
241 | | * Since I was having problems with getting regression tests to run, I first tried to get something in examples/hello working: |
242 | | {{{ |
243 | | >>cd examples/hello |
244 | | >>make check |
245 | | >>cd ../.. |
246 | | >>./contrib/bgpSurveyorExampleFix.sh |
247 | | >>cd examples/hello/runPython/ |
248 | | >>qsub --mode script -A cca-tools -t 5 -n 1 ./runPy2C |
249 | | }}} |
250 | | |
251 | | * If it works you should see the following in an output file: |
252 | | {{{ |
253 | | >>more 198866.output |
254 | | Hello world! |
255 | | }}} |
256 | | |
257 | | * Now run: |
258 | | {{{ |
259 | | >>qsub --mode script -A cca-tools -t 5 -n 1 ./runPy2Cxx |
260 | | >>more 198867.output |
261 | | Hello world2! |
262 | | process group 974 has completed |
263 | | }}} |
264 | | |
265 | | * Try running something from runCxx: |
266 | | {{{ |
267 | | >>cd ../runCxx |
268 | | >>qsub --mode script -A cca-tools -t 15 -n 1 runAll.sh |
269 | | >>more 198868.output |
270 | | Hello from C... |
271 | | Hello from C++... |
272 | | f77 support not enabled |
273 | | }}} |
274 | | And the output is as we expect it. Now I will move on to regression tests (regression/args) to make sure Cxx->Python and Python->Python work. |
275 | | |
276 | | * All regression tests must be run individually. Note, when you run a test with 1 node we're still charged for using all 64 processors. For this reason, I run one or two tests to make sure babel was compiled correctly but nothing more. If we run into problems down the road we will test that individual babel functionality or if necessary, build an MPI test harness which would allow us to use all 64 processors. |
277 | | {{{ |
278 | | >>cd regression/output |
279 | | >>make check |
280 | | >>cd ../args ; make check |
281 | | >>cd ../.. ; ./contrib/bgpSurveyorRegressionFix.sh ; cd - |
282 | | }}} |
283 | | |
284 | | |
285 | | |
286 | | * Python -> {C, Cxx, Python}. For this I change directories to runPython and use the runPy2* scripts. I also added the line below to runPy2C. |
287 | | {{{ |
288 | | PYTHONPATH=/soft/apps/python/python-2.6-cnk-gcc/numpy-1.3.0/lib/python2.6/site-packages:${PYTHONPATH} |
289 | | }}} |
290 | | * Python -> C |
291 | | {{{ |
292 | | >>cd ../runPython |
293 | | >>qsub --mode script -A cca-tools -t 5 -n 1 ./runPy2C |
294 | | 198879 |
295 | | >>tail 198879.output |
296 | | COMMENT: (1, 3.14 + 3.14i) == obj.passoutdcomplex() |
297 | | RESULT 46 PASS |
298 | | PART 47 |
299 | | COMMENT: (1, 3.14 - 3.14i) == obj.passinoutdcomplex(3.14 + 3.14i) |
300 | | RESULT 47 PASS |
301 | | PART 48 |
302 | | COMMENT: (3.14 + 3.14i, 3.14 + 3.14i, 3.14 + 3.14i) = obj.passeverywheredcomplex(3.14 + 3.14i, 3.14 - 3.14i) |
303 | | RESULT 48 PASS |
304 | | TEST_RESULT PASS |
305 | | process group 991 has completed |
306 | | }}} |
307 | | * Python -> Cxx |
308 | | {{{ |
309 | | >>cd ../runPython |
310 | | >>qsub --mode script -A cca-tools -t 5 -n 1 ./runPy2Cxx |
311 | | 198880 |
312 | | >>tail 198880.output |
313 | | COMMENT: (1, 3.14 + 3.14i) == obj.passoutdcomplex() |
314 | | RESULT 46 PASS |
315 | | PART 47 |
316 | | COMMENT: (1, 3.14 - 3.14i) == obj.passinoutdcomplex(3.14 + 3.14i) |
317 | | RESULT 47 PASS |
318 | | PART 48 |
319 | | COMMENT: (3.14 + 3.14i, 3.14 + 3.14i, 3.14 + 3.14i) = obj.passeverywheredcomplex(3.14 + 3.14i, 3.14 - 3.14i) |
320 | | RESULT 48 PASS |
321 | | TEST_RESULT PASS |
322 | | process group 993 has completed |
323 | | }}} |
324 | | * Python -> Python |
325 | | {{{ |
326 | | >>cd Py2Py |
327 | | >>qsub --mode script -A cca-tools -t 5 -n 1 ./runPy2Py.sh |
328 | | 198882 |
329 | | >>tail 198882.output |
330 | | PART 46 |
331 | | COMMENT: (1, 3.14 + 3.14i) == obj.passoutdcomplex() |
332 | | RESULT 46 PASS |
333 | | PART 47 |
334 | | COMMENT: (1, 3.14 - 3.14i) == obj.passinoutdcomplex(3.14 + 3.14i) |
335 | | RESULT 47 PASS |
336 | | PART 48 |
337 | | COMMENT: (3.14 + 3.14i, 3.14 + 3.14i, 3.14 + 3.14i) = obj.passeverywheredcomplex(3.14 + 3.14i, 3.14 - 3.14i) |
338 | | RESULT 48 PASS |
339 | | TEST_RESULT PASS |
340 | | }}} |
341 | | * Cxx -> {Cxx, C, Python}. I run the binaries directly out of the .libs directory. The SIDL_DLL_PATH to the library as well as the argument to lt-runAll is changing. |
342 | | * Cxx -> Cxx |
343 | | {{{ |
344 | | >>qsub --mode vn -n 1 -A cca-tools -t 15 \ |
345 | | --env SIDL_DEBUG_OPEN=1:\ |
346 | | LD_LIBRARY_PATH="../../../lib/sidlstubs/Cxx/.libs:/bgsys/drivers/ppcfloor/lib64:/dbhome/db2cat/sqllib/lib64:/dbhome/db2cat/sqllib/lib32":\ |
347 | | SIDL_DLL_PATH="../libCxx/libImpl.scl;../../output/libC/libOutput.scl;../../../runtime/sidlx/libsidlx.scl" \ |
348 | | /gpfs/home/muszala/ccaToolChain/babelDev/regression/args/runCxx/.libs/lt-runAll C++ |
349 | | >>tail 198872.output |
350 | | COMMENT: obj.passoutdcomplex( out ) == true && out.real() == 3.14 && out.imag() == 3.14 |
351 | | RESULT 38 PASS |
352 | | PART 39 |
353 | | COMMENT: obj.passinoutdcomplex( inout ) == true && inout.real() == 3.14 && inout.imag() == -3.14 |
354 | | RESULT 39 PASS |
355 | | COMMENT: retval = obj.passeverywheredcomplex( in, out, inout ); |
356 | | PART 40 |
357 | | COMMENT: retval.real() == 3.14 && retval.imag() == 3.14 && out.real() == 3.14 && out.imag() == 3.14 && inout.real() == 3.14 && inout.imag() == 3.14 |
358 | | RESULT 40 PASS |
359 | | TEST_RESULT PASS |
360 | | }}} |
361 | | * Cxx -> C |
362 | | {{{ |
363 | | >>qsub --mode vn -n 1 -A cca-tools -t 15 \ |
364 | | --env SIDL_DEBUG_OPEN=1:\ |
365 | | LD_LIBRARY_PATH="../../../lib/sidlstubs/Cxx/.libs:/bgsys/drivers/ppcfloor/lib64:/dbhome/db2cat/sqllib/lib64:/dbhome/db2cat/sqllib/lib32":\ |
366 | | SIDL_DLL_PATH="../libC/libImpl.scl;../../output/libC/libOutput.scl;../../../runtime/sidlx/libsidlx.scl" \ |
367 | | /gpfs/home/muszala/ccaToolChain/babelDev/regression/args/runCxx/.libs/lt-runAll C |
368 | | >>q |
369 | | 198875 muszala 00:15:00 1 queued None |
370 | | >>tail 198875.output |
371 | | COMMENT: obj.passoutdcomplex( out ) == true && out.real() == 3.14 && out.imag() == 3.14 |
372 | | RESULT 38 PASS |
373 | | PART 39 |
374 | | COMMENT: obj.passinoutdcomplex( inout ) == true && inout.real() == 3.14 && inout.imag() == -3.14 |
375 | | RESULT 39 PASS |
376 | | COMMENT: retval = obj.passeverywheredcomplex( in, out, inout ); |
377 | | PART 40 |
378 | | COMMENT: retval.real() == 3.14 && retval.imag() == 3.14 && out.real() == 3.14 && out.imag() == 3.14 && inout.real() == 3.14 && inout.imag() == 3.14 |
379 | | RESULT 40 PASS |
380 | | TEST_RESULT PASS |
381 | | }}} |
382 | | |
383 | | |
384 | | * If you do run 'make check' you will build the tests, attempt to run them on the login nodes and all will be reported as broken. If you do run 'make check' to completion you will see the following: |
385 | | {{{ |
386 | | >>make check |
387 | | ... |
388 | | ... |
389 | | 305 B struct/runPython/Py2Py/runPy2Py.sh 0 0% [parse error] |
390 | | 306 B sort/runPython/Py2Py/runPy2Py.sh 0 0% [parse error] |
391 | | 307 B strings/runPython/Py2Py/runPy2Py.sh 0 0% [parse error] |
392 | | 308 B wrapper/runPython/Py2Py/runPy2Py.sh 0 0% [parse error] |
393 | | 309 B wrapper/runPython/runPy2C 0 0% [parse error] |
394 | | 310 B wrapper/runPython/runPy2Cxx 0 0% [parse error] |
395 | | Error: gantlet: 3 failed tests and 221 broken tests. |
396 | | make[4]: *** [run-gantlet] Error 224 |
397 | | make[4]: Leaving directory `/gpfs/home/muszala/ccaToolChain/babelDev/regression' |
398 | | make[3]: *** [check-local] Error 2 |
399 | | make[3]: Leaving directory `/gpfs/home/muszala/ccaToolChain/babelDev/regression' |
400 | | make[2]: *** [check-am] Error 2 |
401 | | make[2]: Leaving directory `/gpfs/home/muszala/ccaToolChain/babelDev/regression' |
402 | | make[1]: *** [check-recursive] Error 1 |
403 | | make[1]: Leaving directory `/gpfs/home/muszala/ccaToolChain/babelDev/regression' |
404 | | make: *** [check-recursive] Error 1 |
405 | | }}} |
406 | | |
407 | | |
408 | | |