1 / 41

Application d evelopment using the ALMA Common Software

Learn about the ALMA project's software infrastructure for distributed systems, including ACS, platforms, and key features.

maclean
Download Presentation

Application d evelopment using the ALMA Common Software

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Application development using the ALMA Common Software G.Chiozzia, A.Caproniae, R.Ciramie,P.Di Marcantonioe, D.W.Fugated, S.Harringtonb, B.Jerama, M.Peskoc, M.Sekoranjac, H.Sommera, V.Wanga, K.ZagarcaESO bNRAO cCosylab dU.Calgary eINAF-AOT gchiozzi@eso.org SPIE 2006 – 6274-06

  2. What is ALMA? Status? What is ACS? Where are we? Main features Platforms Looking back: considerations and lessons learned Projects and community Conclusion Contents • Free software • Asynchronous communication • Multithreading and distributed applications • Components and containers • …more in the paper ALMA Common Software

  3. The ALMA project • 50x12m antennas • 4x12m antennas optimized for total-power (Japan) • Compact array of 12x7m antennas for higher sensitivity to broad, low-surface brightness features (Japan) • Antennas can be moved to ~185 different pads. • Maximum baselines from 150m to 18km, resolutions from 1” to <0.01” at 850 µm. ALMA Common Software

  4. Sensitivity and Angular Resolution ALMA Common Software

  5. ALMA Sites in Chile Antenna Operations Site (AOS) OperationSupportFacility (OSF) Santiago Central Office (SCO) ALMA Common Software

  6. Chile, Chajnantor plateau - 5000m Chile, Chajnantor plateau - 5000m ALMA Common Software

  7. ALMA AOS Technical Building, Apr 2006 ALMA Common Software

  8. ALMA Operation Site Facility (2900m – Atacama desert) ALMA Common Software

  9. ALMA Operation Site Facility today ALMA Common Software

  10. Antenna’s construction timeline • First antenna delivered on site in Q1 2007. • Further antennas coming from Q4 2007 with new antenna every 2 months. • First science: end of 2009. • Full completion: 2012. ALMA Common Software

  11. ALMA Computing • Large but extremely distributed team • 40 Full Time Equivalent for whole E2E sw => Total development effort to 2011 ~280 FTE-years • Staff in 14 Institutions Europe/North America/Japan ALMA Common Software

  12. What is ACS? ACS is a software infrastructure for the development of distributed systems based on the Component/Container paradigm • end-to-end: from data reduction to control applications • common application framework and design patterns, not just libraries • well tested software that avoids duplication • make upgrades and maintenance reasonable • common development environment and tools ALMA Common Software

  13. Where are we? • Developed for ALMA and used by several other projects. • ACS is based on a kernel of software contributed by cosylab and developed for the ANKA Synchrotron. Our collaboration started in Trieste at ICALEPCS 1999. • ½ of allocated development effort spent until now • Total allocated ~30 man years + additional external contribution (~10). • 10th release • Extensively used in the field: • ALMA Test Interferometer and labs • ALMA software integrations • Other projects ALMA Common Software

  14. Main Features • ACS provides the basic services needed for object oriented distributed computing. Among these: • Transparent remote object invocation • Object deployment and location based on a container/component model • Distributed error and alarm handling • Distributed logging • Distributed events • The ACS framework is based on CORBA and built on top of free CORBA implementations. ALMA Common Software

  15. Supported Platforms • Operating system: Linux, RH-E + other flavours • Real-time: RTAI and VxWorks • Languages: C++, JAVA, Python • CORBA middleware: TAO (& ACE) (C++), JacORB (Java), Omniorb (Python), CORBA services. • Embedded ACS Container: PC104, Debian, 300Mhz Geode, 256MB RAM, 256 MB flash (CosyLAB microIOC) ALMA Common Software

  16. LGPL and free software • The strategy to provide common features to our users is: • Use as much as possible open-source tools, instead of implementing things. • Do not reinvent the wheel • Reuse experience of other projects • Do not pay for licenses • Support from user’s community • Identify the best way to perform a task among the possibilities • Wrap with convenience and unifying APIs • ACS is distributed under LGPL license • Free software has also drawbacks: • Fast lifecycle and support only of the newest • Free/commercial support • Documentation not as good as commercial products ALMA Common Software

  17. Asynchronous communication • ACS provides 4 ways to communicate between Components: • Synchronous method calls • Asynchronous method calls (callbacks) • Notification channel (publisher-subscriber) • Bulk data (hi-performance streaming, 60 Mbytes/s) ALMA Common Software

  18. Notification channel usage • Notification Channel has been used much more than expected to: • Synchronize subsystems: synchronization events • Publish data to multiple subscribers, not known a priori • Preferred to callbacks because easier to implement • Very easy to use: evolution of ACS implementation classes, coding conventions and tools • Drawbacks: • more difficult to keep track of dependencies • Circular dependencies make a system more fragile • Stick to unidirectional dependencies!Callbacks can help reversing dependencies. ALMA Common Software

  19. Multithreading and distributed applications: the problems • Component based systems like ACS are intrinsically: • Highly distributed • Asynchronous and multithreaded • Methods can be called at any time, in parallel to the same or other methods. • Developers need to be well aware of concurrency issues • Debugging is more problematic than with single threaded applications ALMA Common Software

  20. Multithreading and distributed applications: the solutions ACS addresses these problems by means of: • Threading management classes • Centralized logging • Distributed error handling • Dynamic loading/unloading of Components • Component’s simulation • Tools for automatic regression tests involving distributed Components ALMA Common Software

  21. Components and Containers • In recent releases we have improved decoupling of Components and Containers: • Container services • Dynamic components • Tasks • Configuration of the runtime system is being re-discussed. We need better tools to keep aligned the configuration of the various ALMA deployments • We have started concentrating on the deployment of Containers: requirements form pipeline and offline subsystems. ALMA Common Software

  22. ACS installations and projects ALMA Common Software

  23. OAN 30m (Spain) APEX (Chile) Sardinian Radio Telescope(Italy) ALMA(Chile) HPT Hexapod Telescope(Germany → Chile) ANKA (Germany) The ACS community ALMA Common Software

  24. Conclusion • Core concepts are now very stable. • Most packages are implemented, but not 100% • Most of the work comes now from change requests and feedback and not from long term planning items • ACS is significantly improving in stability, usability and global consistency. • Analysis of the applications developed and of the feedback from the developers tells us what is good, what is bad and how to improve.More in the paper! Having a user’s base in addition to our main project has provided important feedback, cross-fertilization of concepts and ideas and contributed to software quality ALMA Common Software

  25. Questions (& Answers) http://www.hq.eso.org/projects/alma/ http://www.eso.org/projects/alma/develop/acs SPIE Papers on ALMA/ACS ALMA Common Software

  26. Reserve slides ALMA Common Software

  27. Observing in different bands • 10 Frequency bands coincident with atmospheric windows have been defined. • Bands 3, 6, 7 and 9 will be available from the start. • Bands 4, 8 and 10 will be built by Japan. • Some band 5 receivers built with EU funding. ALMA Common Software

  28. Highlights of the Last Two Years New in ACS for: • developers to use in their code: libraries, convenience classes, utilities to improve the quality of the code • test/integration/administrators, transparently from application code (i.e. in principle transparent to Component developers) ALMA Common Software

  29. Comp container Comp Component Container Evolution/Cleanup functional interface: observe() lifecycle interface: init() cleanUp() • Container Services • Full separation between Container and Container Services • Cleaner interfaces • Easier to replace Container implementation • The most important services provided now by the ContainerServices are… • Component life cycle • Plain instantiation of Components not sufficient • Standard lifecycle state machine introduced for the Container to manage Components container service interface getComponent(“CompB”); Logger getLogger(); ALMA Common Software

  30. Master Component • ALMA subsystems interact with the Executive. • Executive treat all in the same way. • Lifecycle for subsystems, not only components • Fits smoothly into acs concept: • each subsystem needs a mastercomponent • it is a component with a specific interface • ACS defines the underlying state machine • Implementation: • a generator (using open-architectureware) maps UML to state machines • generator creates convenience base classes • state machine has been refined in a couple of design iterations • The introduction of the Master Component has been very effective. • Cost of prototype generator not higher than cost of developing the MasterComponent in code ALMA Common Software

  31. Event Handling and Notification Channel • Events are widely used in ALMA for synchronization and asynchronous, *-to-* communication. • Decoupling of Consumers and Suppliers • Very easy interface: • Supplier classes • Consumer classes • Contract based on IDL data structures. • Strong naming conventions and checking tools • Administrative interface • Quality of service ALMA Common Software

  32. Threading Support • Many Components have a multi-threaded structure • Management of threads was a source of problems • Developed easy-to-use threading classes: • Override a run() method • Use the thread manager • Based on ACE Threads in C++, concurrent library in Java ALMA Common Software

  33. Concurrency patterns • Concurrent execution is allowed.Access to resources is protected. • The newly invoked request shall be rejected • The newly invoked request shall supersede the old one • The newly invoked request is queued and executed after completion of the previous one ALMA Common Software

  34. VxWorks → TICS Entire LCU in real-time OS ACS provides complete Container/Component in real-time environment Support will probably remain for other projects (VLT) RTAI → ALMA RT Kernel inside Linux Component not real-time ↔ small time-critical functions in Kernel. Less code in real-time, but more complex to debug ACS provides easy: Communication with kernel modules Logging from kernel modules Kernel module management A change in paradigm! Real-time Support ALMA Common Software

  35. Achieved Performance • Gigabit P2P Ethernet • BD throughput around 800 Mbits/s (~100 MB/s) requirements fulfilled • CORBA throughput around then 500 Mbit/s (~ 55 MB/s) • Estimated gain in the throughput around 30% Bulk Data Transfer • Requirements from the correlator: • 64 MB (megabyte)/sec • Based on CORBA A/V streaming service • TAO C++ implementation • Very easy interface, based on our use cases • No CORBA A/V visible ALMA Common Software

  36. Simulation • Why simulation? • Distributed development • Features or entire subsystems not yet available • Test a subsystem in isolation • Simulation of Components from IDL interface spec. • Dumb default or “intelligent” simulation ALMA Common Software

  37. Reuse the Laser Alarm Console ACS Component/Container replaces J2EE CERN Laser Reimplementation of Laser interfaces IDL interfaces replace EJB interfaces Keep the same API acsjms implements jms for ACS on top of Notification Channel ACS Alarm System: Laser Feasibility prototype to re-use CERN Laser Alarm System The challenge: reuse a complete subsystem/service in a verydifferent software infrastructure ALMA Common Software

  38. Tasks and Parameters • ACS is used in ALMA also as data reduction infrastructure framework • Requirement: data reduction to be started as a stand-alone process.A program which starts-up, performs processing and shuts down. • Implementation: • Stand alone executable • Static container • Works with and without ACS suite • Input parameters are complex data sets: • Parameter set definition (xml) • Parameter set instantiation (xml) • Validation • Parsing ALMA Common Software

  39. ACS Supports ABeans development with an Eclipse plug-in A LabView prototype has been implemented Some projects are using Qt GUIs Different projects and differentsubsystems have different requirements! ALMA Common Software

  40. Performance and Benchmarking • ACS has performance requirements to satisfy • Changes to code and upgrade of external libraries can affect performance • Created performance measurements and reporting framework • Performance of Component to Component communication, notification channel, logging system… http://www.eso.org/~almamgr/AlmaAcs/Performance/BenchmarkDoc/ ALMA Common Software

  41. Performance Average C++ throughput: 1500 event/s (100 bytes) Average C++ throughput: 3500 event/s (100 bytes) ALMA Common Software

More Related