.mit.edu

Development

Accessing bugle

Bugle is only accessible through ssh onto the frontend machine bugle.mit.edu. Files can be transferred to/from Bugle with the scp program.

Compiling

Fortran, C and C++ compilers are available on Bugle. The following table summarizes the available compiler tools.

Compiler Command Type Location
C blrts_xlc IBM Serial/Cross Compiler /opt/ibmcmp_new/vac/bg/8.0/bin/blrts_xlc
C++ blrts_xlC IBM Serial/Cross Compiler /opt/ibmcmp_new/vacpp/bg/8.0/bin/blrts_xlC
Fortran F77 blrts_xlf IBM Serial/Cross Compiler /opt/ibmcmp_new/xlf/bg/10.1/bin/blrts_xlf
Fortran F90 blrts_xlf90 IBM Serial/Cross Compiler /opt/ibmcmp_new/xlf/bg/10.1/bin/blrts_xlf90
Fortran F95 blrts_xlf95 IBM Serial/Cross Compiler /opt/ibmcmp_new/xlf/bg/10.1/bin/blrts_xlf95
C bgl-gcc GNU Serial/Cross Compiler /opt/MITBGL/bin/bgl-gcc
C++ bgl-c++ GNU Serial/Cross Compiler /opt/MITBGL/bin/bgl-c++
F77 bgl-g77 GNU Serial/Cross Compiler /opt/MITBGL/bin/bgl-g77
MPI Wrappers mpicc, mpicxx, mpif77 Wrappers for GNU Serial/Cross Compilers /bgl/BlueLight/ppcfloor/bglsys/bin/

Useful Compiler Flags

-qarch=440 uses only single FPU per processor (minimum option)
-qarch=440d allows both FPUs per processor (alternate option)
-qtune=440 use after –qarch, to avoid warnings
-O3 gives minimal optimization with no SIMDization
-qhot=simd adds SIMDization (seems to be the same as –O5)
-O4 adds compile-time interprocedural analysis
-O5 adds link-time interprocedural analysis (but still has problems)
-qdebug gives SIMDization info

Submitting/Cancelling Jobs

cqsub
$ cqsub -n 32 -t 30 program_name Submits job "program_name" onto 32 nodes for a 30 minute run in CO mode
$ cqsub -n 32 -c 64 -m vn -t 30 program_name Submits job "program_name" onto 64 processors for a 30 minute run in VN mode

cqdel
cqdel JobID Removes submitted job with id "JobID"

Monitoring Blocks/Jobs

bgl-listblocks
bgl-listblocks --long Lists detailed blocks status

bgl-listjobs
bgl-listjobs --long Lists detailed jobs and status

cqstat
cqstat -f Queries the queue manager for jobs

Libraries

ARPACK/PARPACK ARPACK is a collection of Fortran77 subroutines designed to solve large scale eigenvalue problems. PARPACK is the MPI parallel version. The packages are in /opt/ARPACK
MASS/MASSV

Version Control

Subversion is available on the Bugle frontend. Users can create and use local repositories. It is important to include /opt/subversion/bin/ in your PATH. Once that is done, access to the repository can be done locally using or remotely using <svn+ssh://bugle.mit.edu/>.

Here are some basic commands

svn ls http://localhost/svn lists files in repository
svn co http://localhost/svn project checks out project from repository
svn ci http://localhost/svn project checks in project into repository
svn status gets the latest status info on checked out files
svn update updates checked out files

For a more authoritative reference, please see the subversion book

Accessing external sites from bugle

Since only secure shell (ssh) connections are allowed in and out of the bugle front end, connections to other ports (e.g. port 80) must be tunneled through a secure connection. This can be done in the following manner:

  1. Suppose the URL you want to download has a form http://<host>:<port>/<path>
    If instead, it has a form http://<host>/<path> set <port>=80 in the following.
  2. Select a number <p> such that, 1024 < p < 65535.
  3. Connect to bugle.mit.edu with a tunnel as follows:
    $ ssh -R <p>:<host>:<port> bugle.mit.edu
  4. If the command in step 3 issues a message saying:
    "Warning: remote port forwarding failed for listen port <p>"
    select a new value for <p> and repeat step 3. Otherwise continue
  5. On bugle, start the download with curl:
    $ curl -o<name> --header 'Host: <host>' http:// localhost:<p>/<path>
    where <name> is the local name to save data into.
  6. You can download other files from the same <host> by going to step 5.
  7. If the URL starts with https, the default value for the <port> is 443.
    In this case you will also need to use https:// in curl.
  8. The above does not apply to ftp, you can use the ftp client from the FEN without the tunnel.
  9. When you are finished with download, exit from the FEN to break the tunnel.

Using the caret (^) symbol in directories

You cannot use the caret (^) symbol in directory paths that are used to submit jobs to Bugle since mpirun will not parse it correctly