Problem Solving Environments
A problem solving environment (PSE) integrates the tools needed to solve a class of problems or a generic problem like data visualization. PSE's are intended to make underlying computer and software issues invisible to the domain experts that use the tools. At their best, PSE's solve simple or complex problems, support rapid prototyping or detailed analysis, and can be used in introductory education or at the frontiers of science. They form the bridge between computer scientists and domain experts and they are essential to producing repeatable, understandable results on complex datasets being analyzed on complex computer systems.
We have developed a PSE for post-processing and V&V of simulation data. The Image and Data Analyzer (IDA) is a suite of software that organizes the analytical tools written by the Data Driven Modeling and Analysis Team. IDA is written in Matlab and C and is designed to be run from within Matlab. IDA provides a structure for data analysis which allows for efficient execution, management and comparison of runs and makes the methods we develop readily transferrable. Key components include programming standards, a database to organize and store results, a scripting language, a branching data processing pipeline that supports complex analysis structures, integration into Sourceforge for version control and bug tracking.
We also worked on ViNE, a web-based electronic notebook that implements a high-level interface for applying computational tools in scientific experiments in a location- and platform-independent manner. Using ViNE, a scientist can specify data and tools, and construct experiments that apply them in well-defined procedures. ViNE's implementation of the experiment and lab notebook abstraction offers the scientist an easy-to-understand framework for building scientific processes. This paper discusses how ViNE implements computational experiments in distributed, heterogeneous computing environments. Concepts from ViNE are being applied in recent developments for IDA.
We also do research on some of the basic problems in building a PSE. For example, PSE's often integrate code written in different languages. This has lead to work on language interoperability, component tools, and databases. Follow this link to a more details on these topics.
Related Links
- ccain A pure C, portable, CCA compliant component framework