Mass balance effects on glaciers
From SuperMe
Contents |
Project Members
Project by: Elliott Moy
Advisors: Dr. Peter Koons and Dr. Philip Dickens
Abstract
This project focuses on applying supercomputing to model the effects of atmospheric conditions and mass balance on glaciers. The supercomputer is given mathematical functions and initial data to iterate, generating maps of the effects on glaciers over time. The geological models used currently can only reasonably cover a small area in detail, but supercomputing will enable modeling of a much larger area. In addition, another focus of this project will be making supercomputing power for mathematical problem solving available to scientists that don't specialize in supercomputing by creating a simple user interface.
Abstract, revised
The University of Maine Ice Sheet Model (UMISM) is a program for measuring the effects of temperature and precipitation on glaciers. Given a set of four parameters, it can predict mass balance (the amount of mass a glacier gains or loses), the amount of snow that falls on an area, and even the environment type of an area. The model was only available as MATLAB code before this project. The intent of the project is to port the MATLAB implementation to something that can run as a client-server application on the Web to make it available to researchers outside of the University of Maine.
Week 1
Week 1 focused on introduction to MPI. We learned basics of MPI, visited the supercomputer building, and worked on small assignments in MPI.
Week 2
- Finished the MPI introduction. I started learning about the geology background behind the project.
- Worked with NetLogo and received overview of the mass balance model.
Week 3
We're probably going to use Java Web Start to implement the web interface for the mass balance model.
- First, I have to port the model over to C/C++/Java/some popular programming language.
- Finished porting the code over. Been working on getting it to work online using CGI and HTML but not much luck yet.
Week 4
- The program is online. It can't write data or draw pictures yet but it works online and that's what matters right now.
- I need to get Apache working on Linux.
- I'm currently working on getting the program to output bitmap files with the results.
- The bitmap stuff works.
- Changed color scaling so that the min/max values are variable
- Changed static arrays to malloc'ed arrays to handle variable size data sets
Week 5
- Still working on displaying input data
- Done
- Legends complete
- Support for multiple maps
Week 6
- Started working on getting the Linux server to work.
- Thinking of handling file pathnames in an external file so I don't have to hardcode the path names in the program.
Week 7
- Sean mentioned to focus on functionality instead of the Linux Server.
- Got the environment map working, updated interface, currently working on colormap.
Week 8
- Optimized some code.
- Programmed functionality to cut pieces out of a map so one world map can be used for any region.
- Added more color scaling functionality
Week 9
- Implemented the original UMISM color scales and legends.
- Fixed some bugs.
- Fixed the display scaling.
- Worked on poster, report, presentation.
Midterm Report
The first two weeks were an introduction to the supercomputing research program. We covered the basics of MPI (Message Passing Interface) for supercomputing during the first week. The second week was about the geology basics and background behind the mass balance model, particularly interactions between the silicon earth and atmosphere.
By the start of the third week I was working with NetLogo to generate a simple user interface for the mass balance model. Unfortunately, NetLogo proved to be less useful than expected because some required functionality would be almost impossible to script in NetLogo. The mass balance model was implemented in MATLAB, so I ported it to C for performance and to make it easier to run on the web. Later that week, I made efforts to get the program to work via a web interface using CGI (Common Gateway Interface) and HTML.
I made a lot of progress in the fourth week. I wasn't able to get CGI working on one of the Linux servers but was able to get it working locally on my laptop so that I could continue development on the web interface. The first part was to get the program running in the web environment so that it could write out data to the screen in text form and I was able to get this to work by playing around with CGI on Mac OS X. The next part was to learn how to write out bitmap graphics to a file and then make the graphics files available on the web. The original MATLAB output uses a particular color scale scheme so I had to write some code to do that. The final bit of work for the week was to change the static data arrays to variable-size data segments using the malloc function to handle arbitrary data sizes.
During the fifth week, I added support for multiple maps and an option to draw only a part of a map so that the returned image wouldn't take up too much screen space. I even got a very large map to work. I also took a look at using Google Earth and KML to display the results. I continued working on getting the model to work on one of the Linux servers so that the model would be available. The effort there mainly consists of reviewing the Apache configuration files to figure out where to place files and the directory paths in the program. [Midterm Report]