wiki:BuildingAstroBear

Version 48 (modified by Erica Kaminski, 12 years ago) ( diff )

Obtaining and Building AstroBEAR


Below are instructions for obtaining a copy of AstroBEAR and setting up your environment to build it. The general instructions are (slightly) more in-depth and are a blueprint for setting up the code on a new machine. We also have machine-specific instructions for the clusters where AstroBEAR sees frequent use; these are highly procedural and ideal for new users.

General Build Requirements

Required Packages

  • Compilers: AstroBEAR is written in Fortran 95 with C preprocessor tags. Development efforts use Intel compilers (version 9.0 and above), and we can't guarantee other compilers will work. Other packages' installation instructions assume you are using the version 9.0 Intel compilers.
  • MPI Support: MPI (Message Passing Interface) support is required for parallelization. Current AstroBEAR builds use OpenMPI.
  • HDF5:AstroBEAR writes its output to HDF5 files using an augmented version of the Chombo format. The current version of AstroBEAR requires HDF5 version 1.8.5, patch 1 or better.
  • hypre: Elliptic and parabolic processes such as gravity and diffusion are handled by the hypre library of linear PDE solvers. AstroBEAR was developed using version 2.4.0, but it is possible that any revision from 2.0.0 on will work.

Loading Modules

Several of our group's clusters implement AstroBEAR's libraries as modules. To load a module, enter the following command into the command line:

module load <module1> [ <module2> ... <moduleN>]

For example, you would load the required modules on grass by entering:

module load hdf5 ifort openmpi fftw

You can simplify the process by adding these module load commands to your .bash_profile or .bashrc. If you do this, you will need to wrap them in an if statement:

if [ $TERM != "dumb" ]
  then
    module load ifort visit hdf5 fftw openmpi pgplot hypre
fi

Otherwise the modules commands may conflict with remote SSH connections, resulting in a string of alarming (if harmless) error messages. Your bashrc file on grass is located at ~/.bashrc. To open it, you must incorporate the dot before the name, as it is a hidden file.

Mercurial

The AstroBEAR source code is contained in a Mercurial repository on clover. Mercurial is a distributed version control system similar to subversion, and subversion users will find many of its options familiar. For more information on using Mercurial with AstroBEAR, see the Mercurial Tutorial.

Mercurial is available on the following machines:

  • grass.pas.rochester.edu
  • clover.pas.rochester.edu
  • bluehive.rochester.edu (exists as a module; use the module load mercurial command to make it available)

Regardless of which machine you use, you will want to create a .hgrc file in your home directory to set your global options. This is a global version of the .hg/hgrc file found in each Mercurial repository, and its contents affect all your Mercurial actions. Add the text below to your .hgrc file; this sets your default username and e-mail address. The merge=internal:merge keeps grass from popping up random emacs windows during merge conflicts, but may not be necessary on all machines.

[ui]
username = name <blah@blahblah.blah>
merge=internal:merge

A sample .hgrc file is attached to this page.

For more information about mercurial, consult Joel Spolsky's mercurial tutorial. Subversion users in particular will find the Subversion Reeducation page helpful.

Bluehive build instructions

NOTE: Accessing bluehive now requires an active University VPN connection. If you do not have a VPN client set up, go to the University IT VPN website and follow their instructions for setting up VPN software and establishing a VPN connection.

  1. Connect to bluehive using SSH:
    ssh <username>@bluehive.rochester.edu
    
  1. Run the following command, or else make sure that it is in your .bashrc:
    module load intel openmpi-intel mercurial
    
  1. Add the hypre and HDF5 paths to your environment by adding the following lines to your .bashrc file:
export PATH=/home/bshroyer/local/hdf5_185/bin:/$PATH

export LD_LIBRARY_PATH=/home/bshroyer/local/hdf5_185/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/bshroyer/local/hypre24_ompi_opt/lib:$LD_LIBRARY_PATH

Remember to execute the command source ~/.bashrc after adding these lines.

  1. Create a new copy of the code in the directory <current_path>/astrobear by cloning the development repository:
hg clone ssh://<username>@clover.pas.rochester.edu//data/repositories/scrambler astrobear

Grass build instructions

  1. Connect to grass using SSH:
    ssh <username>@grass.pas.rochester.edu
    
  1. To enable the use of modules in your environment, add the following lines to your .bashrc file:
    if [ -f /opt/Modules/current/init/bash ]; then
        . /opt/Modules/current/init/bash
    fi
    
  1. Add the following line to your .bashrc file, making sure to place it after the lines you added in Step 2:
    module load ifort openmpi hdf5 hypre
    

This this will automatically load the AstroBEAR's required modules whenever a new terminal is loaded.

  1. Execute the command
    source ~/.bashrc
    
    after adding these lines. This re-executes the environment setup commands in .bashrc in the current terminal.
  1. Create a new copy of the code in the directory <current_path>/astrobear by cloning the development repository:
hg clone ssh://<username>@clover.pas.rochester.edu//data/repositories/scrambler astrobear

Alfalfa build instructions

NOTE: Accessing alfalfa from outside the pas.rochester.edu domain requires an active University VPN connection. If you do not have a VPN client set up, go to the University IT VPN website and follow their instructions for setting up VPN software and establishing a VPN connection. Users connecting via a machine on the PAS network follow the same procedure (below), but do not need a VPN connection.

  1. Connect to alfalfa using SSH:
    ssh <username>@alfalfa.pas.rochester.edu
    
  1. To enable the use of modules in your environment, add the following lines to your .bashrc file:
    if [ -f /opt/Modules/current/init/bash ]; then
        . /opt/Modules/current/init/bash
    fi
    
  1. Add the following line to your .bashrc file, making sure to place it after the lines you added in Step 2:
    module load ifort openmpi hdf5 hypre
    

This this will automatically load the AstroBEAR's required modules whenever a new terminal is loaded.

  1. Execute the command
    source ~/.bashrc
    
    after adding these lines. This re-executes the environment setup commands in .bashrc in the current terminal.
  1. Create a new copy of the code in the directory <current_path>/astrobear by cloning the development repository:
hg clone ssh://<username>@clover.pas.rochester.edu//data/repositories/scrambler astrobear

Itasca build instructions

  1. Connect to itasca using SSH:
    ssh <username>@itasca.msi.umn.edu
    
  1. Run the following command, or else make sure that it is in your .bashrc:
    module load intel ompi/intel
    
  1. Add the hypre and HDF5 paths to your environment by adding the following lines to your .bashrc file:
export LD_LIBRARY_PATH=/home/it1/bshroyer/local/hdf5_185/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/home/it1/bshroyer/local/hypre_ompi_opt/lib:$LD_LIBRARY_PATH
export PATH=/home/it1/bshroyer/local/hdf5_185/bin:$PATH

Remember to execute the command source ~/.bashrc after adding these lines. This re-executes the environment setup commands in .bashrc in the current terminal.

  1. itasca does not currently support Mercurial, so you will have to pull a copy of the code somewhere else. Clone a copy of the repository on a system that does have Mercurial installed:
    hg clone ssh://<username>@clover.pas.rochester.edu//data/repositories/scrambler astrobear
    
  1. Then copy AstroBEAR to your home directory on itasca, using either
    scp -r astrobear <username>@itasca.msi.umn.edu:
    
    or
    tar -czvf astrobear.tar.gz astrobear
    scp astrobear.tar.gz <username>@itasca.msi.umn.edu
    (on itasca) tar -xzvf astrobear.tar.gz
    

BlueGene build instructions

NOTE: Accessing bluegene now requires an active University VPN connection. If you do not have a VPN client set up, go to the University IT VPN website and follow their instructions for setting up VPN software and establishing a VPN connection.

  1. Connect to BlueGene using SSH:
    ssh <username>@bgpfen.crc.rochester.edu
    
  1. BlueGene does not have modules, so you will have to manually add your hypre and HDF5 paths to your environment. In your root directory, open the .bashrc file and add the following lines:
        export LD_LIBRARY_PATH=/home/kyirak/bg/local/hypre/lib:$LD_LIBRARY_PATH
        export LD_LIBRARY_PATH=/bgsys/local/hdf5/lib:$LD_LIBRARY_PATH
        export PATH=/bgsys/local/hdf5/bin:$PATH
    
    Remember to execute the command source ~/.bashrc after adding these lines.
  1. BlueGene does not currently support Mercurial, so you will have to pull a copy of the code somewhere else. Clone a copy of the repository on a system that does have Mercurial installed:
    hg clone ssh://<username>@clover.pas.rochester.edu//data/repositories/scrambler astrobear
    
  1. Then copy AstroBEAR to your home directory on BlueGene, using either
    scp -r astrobear <username>@bgpfen.crc.rochester.edu:
    
    or
    tar -czvf astrobear.tar.gz astrobear
    scp astrobear.tar.gz <username>@bgpfen.crc.rochester.edu
    (on BlueGene) tar -xzvf astrobear.tar.gz
    


Note: See TracWiki for help on using the wiki.