Sign up or log in to see what your friends are attending and create your own schedule!

View analytic


Software: Mojave
    Wednesday July 18, 2012 10:30am - 11:00am @ Toledo 5th Floor

    Software: Mojave: A Development Environment for the Cactus Computational Framework

    Abstract: ABSTRACT 
    This paper presents “Mojave,” a set of plug-ins for the Eclipse Integrated Development Environment (IDE), which provides a unified interface for HPC code development and job man- agement. Mojave facilitates code creation, refactoring, build- ing, and running of a set of HPC scientific codes based on the Cactus Computational Toolkit, a computational framework for general problem-solving on regular meshes. The award- winning Cactus framework has been used in numerous fields including numerical relativity, cosmology, and coastal sci- ence. Cactus, like many high-level frameworks, leverages DSLs and generated distributed data structures. Mojave fa- cilitates the development of Cactus applications and the sub- mission of Cactus runs to high end resources (e.g. XSEDE systems) using built-in Eclipse features, C/C++ Develop- ment Tooling (CDT), Parallel Tools Platform (PTP) plug- ins[6], and Simfactory (a Cactus-specific set of command line utilities)[5]. 
    Numerous quality and productivity gains can be achieved using integerated development environments (IDEs)[2, 3, 4]. IDEs offer advanced search mechanisms that provide devel- opers a broader range of utilities to manage their code base; for example, refactoring capabilities which enable developers to easily perform tedious and error-prone code transforma- tions and keep their code more maintainable [1]; and static analysis tools, which help locate and correct bugs; and many other advantages. 
    In order for Eclipse to provide these features, however, it needs to be able to index a Cactus codebase, and to do this it needs to understand how Cactus organizes its generated files. Originally, Cactus used per-directory macro definitions in its generated code to enable individual modules to access module-specific code; as a result, displaying or analyzing the content of many header files depended on which file included them, making it impossible for any IDE to properly render or index the code. Part of the Mojave development effort in- cludes refactoring Cactus to use per-directory include mech- anisms instead of defines, generating multiple versions of the same header files in different directories. These changes are invisible to codes that use Cactus, but required teaching Mojave to correctly and automatically configure (or dynam- ically reconfigure) the numerous module directories within a Cactus build directories. 
    Mojave also leverages the Parallel Tools Platform’s (PTP) feature-rich JAXB-based resource management interface. This new extensible resource managment component enables Mo- jave to add its own specialized resource manager which de- scribes the commands to interact with the remote resource manager as well as a means to display workload distribution on remote machines graphically. Thus one may view his job graphically in the context of e.g. an XSEDE resource’s workload. 
    Mojave provides specialized integration points for SimFac- tory, a command-line tool for Cactus job submission and monitoring. These integration points enable scientists to (1) develop new thorns, (2) create, (3) manage, and (4) monitor simulations or sets of simulations on remote machines. Mo- jave offers a menu-driven interface to Simfactory, allowing users to add ther own commands under the menu or attach an action script for Cactus simulation management opera- tions triggered by the matching of regular expressions on the console output stream. This allows for flexible responses to job monitoring information. 
    Because the Cactus Simfactory tools are designed to enable remote submissions to multiple resources and manage jobs on many machines at once, Mojave introduces a new job in- formation sharing feature which enables a research group to view and monitor a set of jobs running on diverse resources submitted by multiple scientists. The research group may then be better informed about its existing runs. In addi- tion, information shared about the results of the runs en- ables a quick response from the community, conveniently from within the same environment the code was developed. Job sharing capabilities combined with the productivity gains offered by Eclipse and the CDT and PTP plug-ins as well as the job submission and monitoring capabilities offered by Simfactory lend flexibility to Mojave as a unified computa- tional science interface for Cactus, thereby bridging scientific efforts across campuses around the globe. 

    REFERENCES [1] D. Dig F. Kjolstad and M. Snir. Bringing the HPC Programmer’s IDE into the 21st Century through Refactoring. In SPLASH 2010 Workshop on Concurrency for the Application Programmer (CAP’10). Association for Computing Machinery (ACM), Oct. 2010. [2] A. Frazer. Case and its contribution to quality. In Layman’s Guide to Software Quality, IEE Colloquium on, pages 6/1 –6/4, dec 1993. [3] M. J. Granger and R. A. Pick. Computer-aided software engineering’s impact on the software development process : An experiment. In Proceedings of the 24th Hawaii International Conference on System Sciences, pages 28–35, January 1991. [4] P.H. Luckey and R.M. Pittman. Improving software quality utilizing an integrated case environment. In Aerospace and Electronics Conference, 1991. NAECON 1991., Proceedings of the IEEE 1991 National, pages 665 –671 vol.2, may 1991. [5] M. W. Thomas and E. Schnetter. Simulation Factory: Taming Application Configuration and Workflow on High-End Resources. ArXiv e-prints, August 2010. [6] G.R. Watson, C.E. Rasmussen, and B.R. Tibbitts. An integrated approach to improving the parallel application development process. In Parallel Distributed Processing, 2009. IPDPS 2009. IEEE International Symposium on, pages 1 –8, may 2009. 


    Type Software and Software Environments Track

Get Adobe Flash player