DANSE: distributed data analysis for neutron scattering experiments

The DANSE system will merge the various computational tasks of neutron scattering into a unified, component-based runtime environment. Standard components will implement data analysis, visualization, modeling, and instrument simulation for all major areas of neutron scattering. A core technology of DANSE is an open source software framework that supports the components and mediates their interactions. Within the DANSE environment, users will be able to mix and match different software components without compilation, and execute calculations seamlessly across distributed resources. DANSE will provide tools to help instrument scientists and expert users migrate their existing routines (written in any of a number of languages) to components, and an interface that allows new and casual users to access a stock set of standard analysis applications or configure their own new computing procedures for novel experiments. The modular structure of DANSE parallels the steps of data analysis performed by scientists, thus making it a natural environment for creating flexible computing procedures. DANSE will lower barriers to sharing software, and extend the experimentalist's toolkit with capabilities of analysis and interpretation such as high-performance simulations (band structure, molecular dynamics, etc.), co-analysis of data from multiple experiments, and real-time feedback for experiment control.

Currently, the server and client software are based in a python implimentation of XML-RPC using SimpleXMLRPCServer (however, the design of a replacement using the more secure python implimentation of the SOAP protocall is underway). When data analysis components are wired together to form a analysis network in the GUI, the analysis data flow is steered by the underlying client core routines, where the client makes XML-RPC calls to analysis components that reside either on the users's laptop or on a remote server. Calls to our remote server (a 16-node Beowelf cluster with over 1 TB of available disk space) are currently handled through a python extension of the apache web server, where all requests can only be made to registered modules and must be accompanied by a username and secure session hash. When the remote data has been processed, only the pertainant data is sent back to the client, thus limiting data transfer and aiding to maximize the rate of data analysis. The ViPEr interface used by the DANSE client has a rather large library of python routines that can be used for data flow, data manipulation, and data visualization, as well as a large suite of python widgets that facilitate data entry and parameter modification in a visual environment. These routines and widgets inherent to the ViPEr interface have recently been integrated into the DANSE client, and will be more mature by the release to friendly users later this year. Python bindings for Matlab and IDL have also been integrated in the client software, and are also undergoing a further maturation process. Python bindings for IGOR, Labview, and popular neutron scattering or computational materials packages (such as DAVE, VASP, ...) are currently being explored. Developments (such as a GUI-based component editor, an underlying scripting language for analysis commands, and a command history/journaling service) are also underway to make the client UI easier to use for both the novice and expert user.

From here you can go to:
the DANSE wiki.
the webpage for the DANSE Client demonstration software.
the webpage for the DANSE Server demonstration software.

This webpage is under construction.

CONTACTS: