The GVDE is a virtual appliance that provides a fully configured Linux environment for developing and testing GLIMMER and its forks. Its purpose is to support the continued development of GLIMMER by reducing the effort required in acquiring and configuring development tools--particularly for Linux-oriented & parallel computing development. This document explains where to find GVDE and provides instructions on how to maintain it.
In the original three semester capstone project, students at ETSU worked on improving two pieces of software: the GLIMMER ice sheet model and its Java frontend, ISIS. The group split into two teams, working on GLIMMER and ISIS respectively. In each team, some students worked on project support while others worked on development. By the end of the project, it became apparent that the challenges of maintaining the development and testing environments were not trivial. Those students, especially those unfamiliar with Linux development, found configuration management issues to be particularly challenging. Lacking remote-access capabilities to the development environment added to these challenges.
GVDE was developed to reduce the effort needed to acquire a functional development environment. This guide contains a step-by-step walkthrough for creating such an appliance, which we call the GLIMMER Virtual Development Environment (GVDE). Future students can simply launch the GVDE on their workstation to access a suitable environment for continuing the development of the GLIMMER.
For those readers that are not familiar with virtualization, a virtual machine can be thought of as a software representation of a computer. Such tools allow a whole platform distribution to be run on popular host operating systems, such as Windows (1). Similar to the development environments used at ETSU, the GVDE virtual machine contains an installation of CentOS Linux. Note that virtual machines can hinder performance an--while suitable for development--may not be suitable for a production environment. The virtualization software used for GVDE is Sun VirtualBox because it is open-source and supports CentOS reasonably well.
This guide is to be updated with each release of GVDE to detail the versions of pre-installed software and the steps taken to build the release. Maintainers of the GVDE should update this document with each new release. GLIMMER developers should use this guide to familiarize themselves with the environment. Developers can also use this document as a guide to installing GLIMMER & PETSc dependencies.
Minimum Recommended Requirements
- 30GB+ storage space
- 1.5GB RAM
- Host Operating System: Windows, Linux, OSX, or Solaris
Download & Install GVDE
Latest Version: 0.1.
For any problems, contact Christian Ferrer.
- Extract the contents of the zip file into the location where the virtual hard disk file (GVDE.vdi) will reside (e.g., C:\Users\Owner\.VirtualBox\HardDisks).
- Start the VirtualBox GUI.
- Click "New" button. This will open the "Create New Virtual Machine" dialog. Click next to continue.
- Set the Operating System to 'Linux' and the Version to 'Red Hat'. Set the name as desired (e.g. GVDE).
- Set the memory size.
- Check "Boot Hard Disk" and select "Use existing hard disk". For the hard disk, browse to the location of GVDE.vdi
- Click 'Finish'
Included Packages & Versions
In addition to several packages installed with CentOS--such as GNOME, X Windows, Openmotif, Python-2, Vim, & EMACS--the latest distribution of the GVDE is guaranteed to have the following packages installed:
VirutalBox, CentOS, & Other Linux Tools
- Version: 5.5
- URL: http://www.centos.org
- Description: Linux OS selected for serial development of GLIMMER. CentOS was chosen to maintain compatibility with the Rocks Cluster Linux distribution.
- Version: 4.1.2
- URL: http://gcc.gnu.org/fortran
- Location: [Default CentOS location]
- Description: C++ and Fortran 90 compilers and debugging tools
- Version: 6u20
- URL: http://www.java.com
- Location: /usr/java
- Description: Java is required by ISIS and IDV.
Parallel Computing Packages
- Version: 2.3.3
- URL: http://www.mcs.anl.gov/petsc/petsc-as/index.html
- Location: /home/cism/install/petsc2-seq
- Description: Library used by ETSU to replace SLAP in GLIMMER.
GLIMMER & ISIS
- Version: 1.0.18
- URL: http://glimmer-cism.berlios.de/
- Location: /home/cism/install/glimmer-1.0.18
- Description: The latest version of the GLIMMER-CISM ice sheet model
- Version: N/A (includes GLIMMER-1.0.14 binaries)
- URL: http://websrv.cs.umt.edu/isis
- Location: /home/cism/install/ISIS
- Description: Provides data sets and tools for visualizing model results
Unidata Integrated Viewer (IDV)
- Version: 2.9
- URL: http://www.unidata.ucar.edu/software/idv/
- Location: [IDV Default Location]
- Description: NetCDF data viewer and visualization tools
Instructions: Preparing the Virtual Machine
Once VirtualBox has been installed, you are able to create virtual machines.
During this phase, you will create a virtual machine to host a CentOS guest operating system. Please note, the following instructions and the provided examples depict the 32-bit versions. If you are running a 64-bit environment, you will need to make the necessary adjustments.
Setting up the virtual machine
To begin, launch the Oracle Virtual Box and you should see the following
- Begin by downloading an ISO image of CentOS from CentOS.org. See the “Included Packages & Versions” section of this page for the versions included in the latest distribution.
- Launch VirtualBox. You will see the hypervisor interface screen like this:
- Click the “New” button, and then “Next”.
- Assign a name to the virtual machine (e.g., VirtualBox). For the Operating System and Version, select Linux and Red Hat respectively. Click "Next".
- Select the amount of base memory you wish to supply the VM. 1 GB or more is recommended. Keep in mind, when the VM is running; your local OS will not have access to this memory. Click “Next.”
- Select to “Create New Hard Disk” and make sure that Boot Hard Disk box is checked. Click “Next.”
- Select "Dynamically expanding storage". Click “Next.”
- Confirm the location is the name of this VM, the one we are creating. The minimum recommended size for the GVDE is 20GB. Click “Next.”
- You will be presented with a summary screen for the new virtual disk. Review the contents, and click “Finish" if they are correct.
- Then, you will be presented with a summary screen for the new virtual machine. Review the contents, and click "Finish" if they are correct.
- Now back at the hypervisor, select the newly created virtual machine (e.g., GVDE in the figure) and click the "Settings" button.
- Under settings go to "Storage". Select "Storage Controller" from the "Storage Tree" list box. Click the "Add CD/DVD Device" button and click the browse icon to the right of the "CD/DVD" combo box. Navigate to the CentOS image file (e.g. CentOS-5.5-i386-binDVD.iso). Click OK to close the settings dialog.
- Now it is time to install CentOS. Select the virtual machine and click the “Start” button. The virtual machine will launch, and the CentOS install screen should appear. After your boot the kernel, you may be asked if you would like perform a media test. Select 'Skip'. This will continue to installation.
- Now you should see a CentOS Welcome screen, click “Next.”
- Select your preferred language, click “Next.”
- The installer will present the following message. Press "OK" to proceed to the disk partitioning dialog.
- Leave the default settings and click "Next."
- The next dialog presents the following warning. Review the changes and click "OK".
- The next dialog allows you to set networking settings. Leave the defaults and click "Next".
- The next dialog allows you to set the locale. Set it to UMT.
- Set the root password. (Note: default root password is 'cismcism').
Configuring CentOS Packages
- At this point, you must select the packages we wish to install along with CentOS. Here is a list of minimum recommended options and what you can expect to find in the default GVDE distribution:
- Gnome Desktop Environment. Enough of the Gnome packages shall be installed such that the user has access to an X terminal and a basic GUI with which to navigate.
- Editors. VIm is the default.
- Engineering and Scientific. Included: PVM & LAPACK.
- Development Tools. Including: automake, doxygen, gcc, gcc-fortran, make.
- X Software Development. The X11 libraries are needed for some PETSc features.
- Click “Next.” To continue installation. Wait for installation to complete.
- Once installation is complete, click “Reboot.”
- Close the virtual machine and choose to "Power off the machine".
- Open the settings for the virtual machine. Go to storage section, and select the CD/DVD drive device setup earlier in this guide. Delete the device or set the "CD/DVD device" one of the drives on the host machine.
- At this point, you are ready to boot your CentOS virtual machine.
Install VirtualBox Guest Additions
The instructions are derived from the Oracle VM VirtualBox User Manual.
- Boot into the virtual machine and login.
- In the hypervisor menu, navigate to "Devices->Install Guest Additions...".
- Within the CentOS guest, open a terminal.
- Login to the root account by issuing the `su` command and enter the root password.
- Run the command `mount /dev/hdc/ /media`.
- Run the installer by running the command `/media/VBoxLinuxAdditions-x86.run`.
- When the installer is finished, issue the command `umount /media/`.
- Log out of root.
These instructions are derived from the PETSc: Docs: Installation page.
- Download PETSc sources from the PETSc website.
- Extract PETSc sources (e.g. `tar –xvzf petsc-2.3.3.tar.gz –C /home/cism/src`)
- Change directory to petsc source directory. Set the PETSC_DIR environment variable.
$> cd /home/cism/src/petsc2
$> export PETSC_DIR=`pwd`
$> export PETSC_ARCH=linux-gnu-c-debug
- Configure for a single processor
$>./config/configure.py --with-cc=gcc --with-fc=gfortran --with-fortran --download-f-blas-lapack=1 –with-mpi=0 --prefix=/home/cism/install/petsc2-uni
OR Configure for MPICH
$>./config/configure.py --with-cc=gcc --with-fc=gfortran --with-fortran --download-f-blas-lapack=1 –with-mpi=1 --prefix=/home/cism/install/petsc2-mpi
- Run the following commands to install
$> make*Note: PETSC_DIR must be set in order to compile or run PETSc programs. If you want to set a default installation of PETSc, add the following line to /home/cism/.bash_profile
$> make install
$> cd /home/cism/install/petsc2-uni/
$> export PETSC_DIR=`pwd`
$> make check
The instructions are derived from the NetCDF Installation and Porting Guide.
- Download netCDF sources from the Unidata website.
- Extract netCDF sources (e.g. `tar –xvzf netcdf-3.1.1.tar.gz –C /home/cism/src`)
- Change the directory to netCDF sources
- Run the following commands:
$> GC=gfortran ./configure –prefix=/home/cism/install/netcdf
$> make install
Installing Java, ISIS & IDV
ISIS, or the Interactive System for Ice Sheet Modeling, is a graphical frontend for GLIMMER. It allows user to configure GLIMMER parameters, run GLIMMER scenarios, and visualize the results. ISIS is capable of generating complex models of varying ice thickness across an ice sheet provided the given variables are extensive enough. When running ISIS, users are capable of inputting a wide range of variables along with GLIMMER to create their models.
- Download IDV binary installer for Linux from the Unidata website.
- Execute the binary installer.
- Follow the instructions. Set the destination directory to '/home/cism/install/idv'.
- Download the latest JRE RPM with self-installer from Java.com.
- As the root user, execute the binary installer.
- Follow the prompts to install. For help, see the instructions for installing Java on Linux.
- Run the following command to add the Java bin path to the default path.
$> export PATH=$PATH:/usr/java/bin
- Download ISIS for Linux from the University of Montana Wiki (2).
- Extract ISISLinux.tar.gz with the following command:
$> tar –xvzf ISISApp.tar.gz –C /home/cism/install
- To execute ISIS, issue the command:
- If desired, create a shortcut to startup_isis on the desktop.
Locating GLIMMER sources
As of 12/22/2009, there are three versions of GLIMMER in active development (3):
- GLIMMER-CISM (a.k.a. "original" GLIMMER)
- Contact: Ian C. Rutt, see the Glimmer-discuss mailing lists at http://forge.nesc.ac.uk/mailman/listinfo/glimmer-discuss (5).
- Website: http://developer.berlios.de/projects/glimmer-cism
- SVN: svn://svn.berlios.de/glimmer-cism/trunk
- Glimmer-CISM (LANL Fork)
- GLIMMER-ETSU-seq (based on LANL Fork)
- GLIMMER-ETSU-mpi (based on original GLIMMER-1.0.18)
 Oracle Corp. Oracle VirtualBox User Manual. [Online] 2010. [Cited: 05 19, 2010.] http://www.virtualbox.org/manual/UserManual.html.
 Community Ice Sheet Model (CISM). Community Ice Sheet Model (CISM). [Online] Los Alamost National Laboratory. [Cited: 05 30, 2009.] http://oceans11.lanl.gov/trac/CISM.
 Ferrer, Christian. ETSU Glacial Modelling Capstone: GLIMMER Outcomes. ETSU CISM - Glacial Modelling Capstone. [Online] 12 12, 2009. [Cited: 22 12, 2009.] http://einstein.etsu.edu/%7Ecism/journals/wp-content/uploads/2009/12/etsu_glimmer_outcomes.docx.
 Development of a Community Ice Sheet Model. University of Montana Ice Sheet Wiki. [Online] [Cited: 04 15, 2009.] http://websrv.cs.umt.edu/isis/index.php/Main_Page.
 The Glimmer-discuss archives. The Glimmer-discuss archives. [Online] [Cited: 05 30, 2009.] http://forge.nesc.ac.uk/pipermail/glimmer-discuss/.
 ETSU GLIMMER/CISM Repository. ETSU CISM SVN Repository. [Online] [Cited: 06 11, 2009.] svn://cssvn.etsu.edu:443/var/svn/cism/glimmer-petsc/patches/20090611_glimmer-etsu-1.0.14/.
 CentOS-4 Documentation. [Online] [Cited: 12 22, 2009.] http://www.centos.org/docs/4/.
 Ferrer, Christian. Building and Testing the GLIMMER Ice Sheet Model with PETSc. ETSU CISM - Glacial Ice Sheet Modelling Capstone. [Online] 06 20, 2009. [Cited: 12 22, 2009.] http://einstein.etsu.edu/%7Ecism/journals/wp-content/uploads/2009/05/build_GLIMMERPETSc.docx.
 Standifer, Brandon. ROCKS 4.3 Step-by-Step Installation Guide. ETSU CISM - Glacial Modelling Capstone. [Online] 05 2009. [Cited: 06 17, 2009.] http://einstein.etsu.edu/%7Ecism/journals/wp-content/uploads/2009/05/ROCKS stepbystep v3_2009-06-20.doc