Justin C. Bagley, September 11, 2017, Richmond, VA, USA
I've previously written blog posts on my website (www.justinbagley.org) about setting up Mac and Windows computers for running BEAST (Bayesian Evolutionary Analysis Sampling Trees) here and here, and those posts touched on installing BEAGLE. This Gist provides some notes on how I recently installed the BEAGLE API/library for scientific computing on a Linux supercomputer.
In all code examples that follow, "$" is the UNIX/Linux prompt; this was not typed and shouldn't be typed if following along with this Gist. Lines that do not start with the prompt are output to screen and likewise also should not be typed as input. The pound sign comments out the remainder of a line, allowing for notes that do not interfere with the code.
For this Gist, I was working with the "godel" supercomputer at Virginia Commonwealth University's CHiPC (Center for High Performance Computing) facility. The current version of Linux on this supercomputer has the following characteristics:
$ ###### System information:
$ godel
$ uname -r ## Name of the kernel release?
2.6.18-238.12.1.el5
$ uname -i ## Do we have 64-bit Linux? Yes
x86_64
$ uname -a ## Get all of the info at once with -a flag
Linux godel1 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:22:04 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux
The first step is to download BEAGLE from GitHub. I downloaded the source code for beagle-lib locally onto my MacBook Pro, by going to the command line and typing:
$ cd ~
$ git clone --depth=1 https://github.com/beagle-dev/beagle-lib.git
You can manually retrieve the hyperlink for using git
to clone a repository to your local machine by going to the GitHub repository page and clicking the green button at the upper right that says "Clone or download" (see screenshot below).
I then transferred the beagle-lib distribution folder saved to my computer to my $HOME/local/lib
directory on the supercomputer. I chose to do this via SFTP (using my favorite browser, Cyberduck; download it for Mac OSX here); however, I also could have easily used scp
to do this.
The next step is to check dependencies on the supercomputer, making sure that they are present and updated. Like most users, I don't have admin privileges on the supercomputer, so I couldn't use apt-get
to simply install all of the dependencies in a bash one-liner. I also couldn't use sudo conda install
to do this. So, I checked things by hand by typing in the names of the dependencies or using locate
to find them. I attempted to install or update any remaining packages for my user account using conda install <package>
or conda update <package>
, respectively. All dependencies were present (and as far as I could tell, also up to date) after finishing this process.
To install BEAGLE on the supercomputer, I basically followed Suchard's instructions for Linux installs, given here. More specifically, on the supercomputer, my installation steps involved (1) loading correct java path, (2) changing to the appropriate directory, (3) reading "INSTALL" file for directions, (4) giving autogen.sh appropriate permissions, and (5) doing a regular Linux install while setting a user-oriented prefix (--prefix=$HOME/lib
). I conducted the install as follows:
JAVA_HOME="$JHOME" # (1)
cd $HOME/local/lib/beagle-lib # (2)
cat INSTALL # (3)
chmod u+x ./*.sh # (4)
./autogen.sh # (5)
./configure --prefix=$HOME/lib
make
make check
make install