THC005 Proceedings of ICALEPCS2009, Kobe, Japan
THE IMPLEMENTATION OF THE SOFTWARE FRAMEWORK IN J-PARC/MLF T. Nakatani, Y. Inamura, T. Ito, S. Harjo, R. Kajimoto, M. Arai, JAEA/J-PARC, Tokai, Ibaraki, Japan T. Ohhara, H. Nakagawa, JAEA, Tokai, Ibaraki, Japan T. Aoyagi, JAEA, Taito-ku, Tokyo, Japan T. Otomo, J. Suzuki, T. Morishima, S. Muto, R. Kadono, S. Torii, Y. Yasu, KEK, Tsukuba, Ibaraki, Japan T. Hosoya, M. Yonemura, Ibaraki university, Hitachi, Ibaraki, Japan
Abstract the computing environment of the instrument are limited. To perform neutron scattering experiments efficiently, it Therefore, we have decided to construct the software on a is necessary to use many kinds of software components common and flexible software framework. such as data acquisition (DAQ), equipment control, The whole information of the instruments should be analysis and visualization with ease-of-use and high recorded for maintenance. The parameters of the throughput environments. At accelerator-driven neutron measurement under various scanning conditions and the facilities with MW-class proton power, such as J-PARC analysis results associated with the measured raw data are (Japan Proton Accelerator Research Complex) and SNS also recorded as experimental meta-data in a database. (Spallation Neutron Source), data sizes are varied from The results of the simulation such as a first-principle several hundred MB to several ten GB per hour, calculation are also recorded in it. The experimental users depending on beamlines. Therefore, the software is can make use of this information before their experiments. necessarily scalable and flexible for the various The number of experimental users who visit J- experiments and the enormous data. In J-PARC/MLF PARC/MLF is expected to be about ten thousands per (Materials and Life science experimental Facility), a year. Majority of the users are not professionals in common software framework has been constructed and neutron experiments. Hence, the system of the instrument then many software components are running on this should be user-friendly. In addition, since the raw data software framework. Our software framework is based on size is enormous (several tens GB), it is very difficult to Python and processes network distributions with XML bring the data back to their home laboratories. They often (eXtensible Markup Language) messages over HTTP access the MLF computing environment and analyze the (Hyper Text Transport Protocol). This software acquired raw data from their laboratories. framework enables experimental users to seamlessly On the basis of these, we have been constructing the perform neutron experiments and analyze the acquired software framework that meets the requirements shown data, as well as instrument scientists to coordinate their below. instruments and manage the configurations. y Scalability: high throughput for the large scale data of gigabyte order. INTRODUCTION y Flexibility: adaptability of various experimental purposes and reduction of resources for development In J-PARC/MLF, the neutron experimental instruments and maintenance. which have groups of detectors with thousands of pixels y Database: logging the whole experimental are measuring the neutron signals while changing information and practical use of previous scanning conditions of the several equipments such as experimental results. sample environment devices and beamline components. y Usability: user-friendly system for a lot of users The data size on each scanning condition is quite possible considering remote access. to be more than GB. Because J-PARC/MLF is a high intensity pulsed neutron source, the measurement at one MLF COMPUTING ENVIRONMENT scanning condition can be performed in very short time (less than 1min.). Users need to optimize the condition in Figure 1 shows the diagram of the MLF computing a short time by taking account of the result of previous or environment. The computing environment has many current data analysis. Thus, the data processing must be software components distributed in the network. The scalable. software framework is responsible for the communication There are 23 neutron beamlines in J-PARC/MLF. between components with XML and input/output to data Various kinds of instruments are in use, being storage including database. commissioned, constructed and proposed. Each One of the components, a user interface (UI) instrument is used in several disciplines with various component called “Working Desktop” (WD), has been experimental setups and various types of software. developed based on an object oriented script language, However, the human resources to construct and maintain Python. Users can perform their experiment and data
Operational Tools 676 Proceedings of ICALEPCS2009, Kobe, Japan THC005 analysis by sending Python commands through the DETAILS OF THE SOFTWARE component. In another words, users can seamlessly FRAMEWORK operate experimental controlling, data analysis and visualization with one Python script. So far, basic Server-Client model was adopted to realize a network- commands were implemented. Graphical user interface based framework: WD is the client and it sends requests (GUI) of WD component is under development. We have to servers. The software framework consists of following been constructing several components in WD. types of software written in Python: The experimental controlling component consists of y Working Desktop: Integrated user interface and the controlling DAQ hardware and other equipments such as client in the network sample environment devices and beamline components. y Instrument management server: Measurement state We introduced “DAQ-Middleware” [1] as the standard machine of hardware control DAQ software. Since DAQ-Middleware recognizes and y Analysis control server: Analysis and visualization absorbs differences between detectors, such as 3He gas state machine. detector, scintillator detector and so on, commands on The communication protocol between WD and the WD are same for every kind of detectors. other components is the exchange of XML messages over The analysis component called “Manyo-lib” [2] is a HTTP. Table 1 shows examples of the relation between C++ library wrapped in Python by SWIG (Simplified the Python commands and XML messages over HTTP. Wrapper and Interface Generator). Manyo-lib provides the standard data structure called “Element Container” Table 1: Examples of Relation Between Python Commands based on STL (Standard Template Library). Users can and XML Messages over HTTP process the data by using built-in functions of Manyo-lib (for mainly data reduction) on Python command line and Command URI Request BODY also add new functions written in Python or C++ for their SE.params(Cond1) /sample/params POST
Measurement control, Equipment control Instrument manager Operation status, Equipment status
Operation Execute control Operation status Instrument script management server (IMS) Equipment status Equipment control
Equipment Equipment control Equipment status control
Equipment control server Figure 3: Analysis procedure. Request / Reply The analysis is performed according to the following
123456 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 DAQ/Equipment 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 procedure: (figure 3) 1. WD: Create or load the analysis condition. Figure 2: Measurement procedure. 2. WD: Send the analysis condition to ACS to start The measurement is performed according to the analysis. following procedure: (figure 2) 3. ACS: Execute analysis modules inside in the stand 1. WD: Create or load the measurement condition and alone mode, or send an analysis module startup script the operation control script. to analysis server and execute analysis modules by 2. WD: Send the measurement condition and the analysis module startup script at the analysis server operation control script to IMS to start measurement. side in the network mode. 3. IMS: According to the operation control script, threads 4. ACS: Monitor analysis execution status. are invoked and requests are sent to DAQ and each equipment control. SUMMARY 4. IMS: Monitor operation status and each equipment We have developed the software framework for DAQ, status. equipment control, analysis and visualization of the neutron experimental instruments in J-PARC/MLF. The Analysis Control Server (ACS) software framework is scalable and flexible by Python The analysis control server (ACS) executes analysis and the distributed network processing with XML/HTTP. and visualization according to analysis conditions given from WD. The analysis conditions consisting of the REFERENCES information such as required analysis modules and the [1] K. Nakayoshi, Y. Yasu, E. Inoue, H. Sendai, M. Tanaka, S. execution sequence are written in a form of XML. We can Satoh, S. Muto, N. Kaneko, T. Otomo, T. Nakatani, and T. describe the procedure of the calculation of parallel / Uchida, Nucl. Instrum. Methods Phys. Res., Sect. A 600 serial or synchronous / asynchronous as an analysis (2009) 173. condition. Analysis parameters given to analysis modules [2] J. Suzuki, T. Nakatani, T. Ohhara, Y. Inamura, M. are recorded in a form of XML. The ACS has not only the Yonemura, T. Morishima, T. Aoyagi, A. Manabe and T. network processing mode but also the stand alone Otomo, Nucl. Instrum. Methods Phys. Res., Sect. A 600 (2009) 123. Operational Tools 678