Feedback on a first use of the ALFA and O2 software

Slides:



Advertisements
Similar presentations
1 CS 446 – Tutorial 6 Frid. Nov. 6 th, 2009 Implementation Tutorial.
Advertisements

Building and Testing OGCE Software on the NMI Build and Test Facility Marlon Pierce Indiana University.
Software Development, Programming, Testing & Implementation.
SET UP COMPUTER ** PLEASE BE AWARE SCREENSHOTS MAY NOT MATCH **
 Introduction Introduction  Definition of Operating System Definition of Operating System  Abstract View of OperatingSystem Abstract View of OperatingSystem.
Excel Services II: Requirements, recommendations, and permissions What you need for Excel Services As explained in the first course in the series, “Excel.
Erlware For Managing Distribution and Build Erlang User Conference 2007.
Tools and software process for the FLP prototype B. von Haller 9. June 2015 CERN.
Unit tests, Integration tests Physics tests Andrea Dotti, Gunter Folger, Pere Mato CERN – PH/SFT Geant4 workshop 2012.
1 ITSK 2611 Welcome. 2 Operating System 3 What is an OS Resource Manager –Disk –Memory –CPU Device Manager –Printers –Video Card –Sound Card Utility.
XSEDE14 Reproducibility Workshop: Reproducibility in Large Scale Computing – Where do we stand Mark R. Fahey, NICS Robert McLay, TACC XSEDE14 - Reproducibility.
October, Scientific Linux INFN/Trieste B.Gobbo – Compass R.Gomezel - T.Macorini - L.Strizzolo INFN - Trieste.
Review Security Hardening IPTables SELinux. Today Installations and updates – Rpm command and packages Apache “Issue Ownership”
Guideline: How to build AMSS source code? History: 01/02/ Make Draft 05/02/2010 – Release /02/2010 – Updated.
A. Aimar - EP/SFT LCG - Software Process & Infrastructure1 Software Process panel SPI GRIDPP 7 th Collaboration Meeting 30 June – 2 July 2003 A.Aimar -
CMSBrownBag,05/29/2007 B.Mangano How to “use” CMSSW on own Linux Box and be happy In this context “use” means: - check-out pre-compiled CMSSW code - run.
CMake refactoring P. Hristov 19/03/2014. History I  Recursive makefiles (F.Carminati):  Problems in dependencies  Slow  "Recursive Makefiles.
Advanced BioPSE NCRR How to Install and Configure J. Davison de St. Germain Chief Software Engineer SCI Institute December 2003 J. Davison.
Setting up Cygwin Computer Organization I 1 May 2010 ©2010 McQuain Cygwin: getting the setup tool Free, almost complete UNIX environment emulation.
Paris package: practical aspects Installation / presentation To run a simulation Analysis To add a new module to Paris Installation / presentation To run.
General rules 1. Rule: 2. Rule: 3. Rule: 10. Rule: Ask questions ……………………. 11. Rule: I do not know your skill. If I tell you things you know, please stop.
Making Folders (Revised 5/27/10) Adding/Editing Local Gallery Folders By Elizabeth Liang under the direction of Professor Susan Rodger Duke University.
Computer Science I Programming in Java (programming using Processing IN Java, using IntelliJ IDE) Classwork/Homework: copy your Processing projects over.
Separate distribution of the analysis code (and more) P. Hristov 19/03/2014.
“This improved a lot since I started using Tango (three years ago) from scratch so I'm happy to see the efforts from the developers. Still there is room.
ANALYSIS TRAIN ON THE GRID Mihaela Gheata. AOD production train ◦ AOD production will be organized in a ‘train’ of tasks ◦ To maximize efficiency of full.
SYSTEM INTEGRATION TESTING Getting ready for testing shifts Gunter Folger CERN PH/SFT Geant4 Collaboration Workshop 2011 SLAC.
CMake: Experience in ALICE P. Hristov 19/06/12. History I Recursive makefiles (F.Carminati): – Problems in dependencies – Slow "Recursive Makefiles.
Windows App Studio Windows App Studio is the tool that makes it fast and easy to build Windows 10 apps. It’s accessible from any device with a browser.
Patrick Gartung LArSoft Usability Meeting 22 June 2016 Build system explorations: Spack.
1 April 14, Starting New Open Source Software Projects William Cohen NCSU CSC 591W April 14, 2008.
Migrating from 1.0 to 1.5 A step by step tutorial Joomla!Day Thailand, 2007 Sam Moffatt.
CMake - Cross-Platform Make R. Douglas Barbieri Made to Order Software Corporation.
Day 1 Session 2. Setup & Installation
Getting Started as an EdgeX Developer
Cygwin: getting the setup tool
Operating System Kernel Compilation
Outline Installing Gem5 SPEC2006 for Gem5 Configuring Gem5.
BASIS Quick Start Guide
Getting & Running EdgeX Docker Containers
Build and Test system for FairRoot
Abstract After a SIG has been approved, one of the next steps is to get products out to users. During this talk, Niels will explain how the Storage SIG.
Installation of the ALICE Software
AI How to: System Update and Additional Software
Git & Github Timothy McRoy.
Operating a glideinWMS frontend by Igor Sfiligoi (UCSD)
Desktop Virtualization
Marc-Elian Bégin ETICS Project, CERN
Java on the LEGO Mindstorms EV3
Introduction to .NET Core
ALICE FAIR Meeting KVI, 2010 Kilian Schwarz GSI.
Getting Started as an EdgeX Developer
One vs. two production environments
DATA MINING Python.
LCGAA nightlies infrastructure
June 2011 David Front Weizmann Institute
Operating System Kernel Compilation
CSC235 - Visual Studio Getting Started.
Building an Internet of Things Device
Fail Fail Poor Communication Lack of Documentation Poor Execution.
Cordova & Cordova Plugin Installation and Management
CS791v Homework and Submission
Critical Thinking You’ll have one minute to answer the following question. No cheating!!!
with Pearson’s MyITLab for Office 2013
The Problem ~6,000 PCs Another ~1,000 boxes But! Affected by:
Java Programming Introduction
with Pearson’s MyITLab for Office 2010
Cygwin: getting the setup tool
Review of Previous Lesson
Java Code Review with CheckStyle
Presentation transcript:

Feedback on a first use of the ALFA and O2 software Barthélémy von Haller

Use case Make an existing program publish histograms Have another program get the histograms My program uses ROOT6, CMake, C++11 and boost ; it runs on SLC6. ROOT 6 histogram Same env as alfa/o2 Should have minimal impact on my programs. Those programs ultimately will run in o2 facility, today not.

Reminder from TDR : O2 stakeholders & SW design «  ALFA is the result of a common effort of the ALICE and FAIR experiments to provide the underlying communication layer as well as the common parts for a multi-process system. »  ALFA for the communication

Expected steps and usage Installation Download a new yum repo file Yum install alfa Installs all the necessary dependencies [Setup environment] (if not installed in standard OS locations) Execute a bash command or add a line to bashrc Environment points to the installed software Documentation Quick start Explains the most basic use cases in the simplest possible way I can copy-paste from it to start using ALFA General introduction to the library Classes documentation Use CMake Add find_package(Alfa CONFIG COMPONENTS Base Devices REQUIRED) to my CMakeLists.txt Add ${ALFA_INCLUDE_DIR} to include_directories Add ${ALFA_LIBRARIES} to target_link_libraries for my program My class(es) #include <…> … Use stuff from the quick start documentation and build on it No FindAlfa !

Actual steps Installation There is no ALFA, one has to install FairRoot  Install many dependencies Some unexpected : Geant, Pythia, GSL Some already there : ROOT, ZeroMQ, CMake, boost Everything is downloaded and compiled Alfaconfig.sh had incompatible options and silent failures After compilation : 24GB (source+build) + 5.5GB (Install) Took me 1 day just to finish all compilations successfully

Actual steps Setup Documentation Export SIMPATH and FAIRROOTPATH  Incomplete environment to start using ALFA Documentation « Getting started » page from FairRoot is not really fit for O2. It mentions the flp2epn tutorial7 though. Lack of documentation. Example : no class diagram to get an idea of design. Example : FairMQChannel(string type, string method, string address) -> What are the possible values for type ? What is a Device ? A Channel ?

Actual steps Use CMake My class(es) Compilation Execution FindFairRoot.cmake -> use FairRootConfig.cmake At least provide FAIRROOT_LIBRARIES, avoid using link_directories My class(es) Inherit from FairMQDevice and uses FairMQChannel by copying parts of AliceO2::flp2epn, but it is already a complex example. Compilation Fails because LD_LIBRARY_PATH not properly set Fails because I have my own ROOT6 somewhere Fails because my FindROOT.cmake is different from the one in FairRoot Execution Crash because … not sure actually. Tried a few things and decided to wait for reinforcement.

Recommendations Modularize as previously designed Split code, create ALFA repo, rename accordingly Define clear support lines, e.g. mailing lists, for each SW component Provide packages and repositories At least compatible with CERN production OS (SLC6, CC7) [Compatible with other supported OS (Unbuntu, Mac ?) Aim at the easiest and least impactful usage See slide numbered 3 Apply specific recommendations See slides numbered 4-6 AliceO2 specific Follow the coding conventions Repository organization Cf DDS What ? When ? Who ?