In what may be the longest overdue blog post I’ll ever write, I would like to take some time to tell everyone about the Eclipse Integrated Computational Environment (ICE). Most of what I am going to write below is adapted from an article that I wrote for the Eclipse Newsletter in January 2015.
The tldr; version of this post is that Eclipse ICE is a scientific workbench and workflow environment that we have developed over the past few years to improve the user experience for computational scientists; to make it possible for developers to deploy rich, graphical, interactive capabilities for their science codes; and to integrate many different scientific computing technologies in one common, cross-platform user environment. I’d like to think we’ve done a good job accomplishing those tasks.
The long version of the former statement is that Scientific Computing can be roughly divided into several different areas, one of which is Modeling and Simulation (M&S). Modeling and Simulation is a field that has existed, from a computing perspective, since World War II and finds its roots in government laboratories and academia. It is a field that encompasses both the art and the science of encoding the physical world into computers. What M&S lacks is good usability.
Eclipse is not used in modeling and simulation as much as it is in other areas, but it is widely known. Several years ago we asked the question, “What if the tools in Eclipse that are used for authoring scientific software could be repurposed for using scientific software?” The result is the Eclipse Integrated Computational Environment (ICE); a general purpose, easily extended M&S platform that significantly updates the way computational scientists interact with their software. It improves productivity and streamlines the workflow for computational scientists when they need to create input files, launch jobs on local or remote machines, and process output. Since it is based on the Eclipse Rich Client Platform, developers can update it to support new codes or add new tools just as easily as users can perform simulations of nuclear fuels or visualize neutron scattering data.
Design and Implementation
ICE is designed around the idea that each task performed by a computational scientist – creating an input file, launching a job, post-processing data, etc. – can be done equally as well by an intelligent delegate that has the required data and knows the instructions necessary to perform the task. For example, writing an input file is more about knowing what information should go in the file than how it should be written. Likewise, launching a massively parallel job is more about knowing what should be launched than the details of how to execute it. Each “intelligent delegate” in ICE is an Eclipse Plugin that inherits from an Item base class and provides a normal, pluggable OSGi service.
ICE also includes some tools that are just, simply, tools and not part of the normal task-based design. Each case is directly related to manipulating or generating data, not using it, so some commonality does exist. These include tools, for example, for 3D visualization and editing ICE’s materials database. Even though these tools are, in a sense, standalone tools, they are still integrated with the platform as OSGi services and used by the Items.
Examples: Nuclear Plant Simulations and 3D Visualization
The first example is visualization. ICE provides tools that allow users to visualize their data using some of the most advanced visualization capabilities available, namely those of the VisIt suite. Users can perform custom analysis operations, such as slicing, via a built-in visualization console and other widgets. The view is completely interactive with rotation and zooming just a click away.
The second example is input generation and one good example is the area of balance-of-plant or plant-level simulations for nuclear reactors. ICE has plugins for generating input for these simulations with the RELAP-7 simulator, based on MOOSE from Idaho National Laboratory, as well as launching RELAP-7 and viewing its results. Since the whole goal is to make everything very easy and push the state of the art, ICE takes this a step further by providing plant-level visualizations of the input.
In both cases, care has been taken to make it possible to reuse the new workbench extensions in other parts of the platform so that future releases will see embedded 3D visualizations in Eclipse Forms and plant-level views that are updated with simulation results in real-time, for example.
Availability and Contributions
Eclipse ICE is an Eclipse Technology project and the source code is available at https://github.com/eclipse/ice. Documentation on the project is available at http://www.eclipse.org/ice and http://wiki.eclipse.org/ice.
The Eclipse ICE team welcomes contributions in any form from the community, (so long as they follow the Eclipse Contribution process, if it applies), so anyone with a good idea should speak up in the forums or on the Eclipse ICE users list, firstname.lastname@example.org.
I gratefully acknowledge the support of our sponsors in the U.S. Deparment of Energy, Office of Nuclear Energy, Advanced Modeling and Simulation (NEAMS); the Department of Energy, Office of Energy Efficiency and Renewable Energy, Computer-Aided Engineering for Batteries (CAEBAT) project; the Consortium for Advanced Simulation of Light Water Reactors (CASL); and the Oak Ridge National Laboratory’s Directors Research and Development Fund.