DAL ALGORITHMS AND PYTHON

Size: px
Start display at page:

Download "DAL ALGORITHMS AND PYTHON"

Transcription

1 DAL ALGORITHMS AND PYTHON CERN Summer Student Report Bahar Aydemir Supervisors: Igor Soloviev Giuseppe Avolio September 15,

2 Contents 1 Introduction Work Done Implementation Details Example Usage By The User DAL algorithms in core New Python Class: AppConfig New Python Class: SegConfig Python script : dal_dump_app_config.py Python script : dal_dump_apps_config.py Optimizations Python side C ++ side Measurements Tests Conclusion Acknowledgements

3 1 Introduction The Trigger and Data Acquisition (TDAQ) system of the ATLAS detector at the Large Hadron Collider (LHC) at CERN is composed of a large number of distributed hardware and software components. TDAQ system consists of about 3000 computers and more than applications which, in a coordinated manner, provide the data-taking functionality of the overall system. There is a number of online services required to configure, monitor and control the ATLAS data taking. In particular, the configuration service is used to provide configuration of above components. The configuration of the ATLAS data acquisition system is stored in XML-based object database named OKS. DAL (Data Access Library) allowing to access it's information by C++, Java and Python clients in a distributed environment. Some information has quite complicated structure, so it's extraction requires writing special algorithms. Algorithms available on C++ programming language and partially reimplemented on Java programming language. The goal of the project is using C++ DAL algorithms in Python. It will also allow several web applications (using a Python back-end like Django) to have a proper access to the system configuration. 2 Work Done There were two proposed solutions in order to reach the goal. First solution is, re-writing the DAL algorithms in Python and the second one is calling the C++ versions at run-time by using bindings with the help of the BoostPython library. The former one requires maintenance always when a modification is done on the original algorithm. However, the latter one is already using the original algorithm as the base and it provides flexibility in terms of the evolution of the original algorithms. Binding from the generated C++ DAL classes to Python would result in two 'DAL objects' representing the same thing: One object from the Boost Python binding to C++ and one object from the pure Python side. Therefore, instead of using the regular way the following method is used. Figure 1 - An example function call flow As illustrated Figure 1, the function call is made on the Python object. In the Python side the arguments are parsed into strings and passed to the C++ side by calling the library function which is a wrapper for the original algorithm. After that, the wrapper retrieves the C++ objects and calls the original algorithm. The result is parsed into strings again to be passed back to Python side. Lastly, the returned value is used for construction of the desired structures and the result is served to the user. Using wrapper functions provides a more Pythonic experience such as returning dictionaries for the functions with multiple return values. It also increases the flexibility on a case by case basis. 3

4 2.1 Implementation Details To explain the implementation details of this method, the implementation of the following C++ algorithm from BaseApplication class is inspected : void get_output_error_directory(std::string& dir_name, const Partition&)const This function takes two parameters, one as the output and the other one as the input. The output value is returned by the Python call and there is no need to be passed into the wrapper. The Python wrappers always takes the generated DAL object and the configuration database as parameters. Then the other input arguments follows which can be seen as the partition parameter in this example. In the following code snippet, line 4 redirects the desired function to the wrapper function. 1. def helper_wrapper(self, db, partition): 2. #It converts all DAL objects to single strings (their UID), and passes the current configu ration DB in addition as first argument. 3. return libdal_algo_helper.get_output_error_directory(self.id, db._obj, partition.id) 4. dal.baseapplication.get_output_error_directory = helper_wrapper To the C++ side the string ids passed instead of the object itself as seen above on line 3 and below line 1. Instead of binding the instance method directly, a helper method is also introduced which be bind instead via Boost::Python. 1. std::string get_output_error_directory(const std::string& self_name, python::configurationpoint er& db, const std::string& partition_name) 2. { 3. // Get the Configuration DB 4. Configuration *conf = db.get(); 5. // Get pointer to ourselves 6. const daq::core::baseapplication *self = conf->get<daq::core::baseapplication>(self_name); 7. // Get the DAL object to the argument, here a 'Partition' 8. const daq::core::partition* partition = conf->get<daq::core::partition>(partition_name); 9. // Call the DAL algorithm. 10. std::string result; 11. self->get_output_error_directory(result, *partition); 12. return result; 13. } Line 3, gets a reference to configuration database via the parameter passed. Later, for every parameter that is a DAL object, the C++ DAL instances are retrieved. Finally, the DAL algorithm is called and the result is returned. 2.2 Example Usage By The User 1. if name == ' main ': 2. import config # Open test database 5. db = config.configuration(database) 6. # Get Partition object 7. partition = db.get_dal('partition', partition_name) 8. # Get HLTSV application, note this is derived class of BaseApplication 9. hltsv = db.get_dal('hltsvapplication', 'HLTSV') 10. # Call the DAL algorithm and print the result 11. print hltsv.get_output_error_directory(db, partition) 4

5 Firstly the database is opened and partition object retrieved as usual. Then the desired object is taken and the function call is made with database and partition parameters. The result of the call can be seen below : /tmp/part_hlt_baydemir 2.3 DAL algorithms in core The following algorithms are implemented by using the method that is described above. dal.baseapplication.get_application dal.baseapplication.get_output_error_directory dal.component.disabled dal.component.get_parents dal.computerprogram.get_info dal.computerprogram.get_parameters dal.partition.get_all_applications dal.partition.get_segment dal.resourcebase.get_applications dal.resourcebase.get_resources dal.segment.find_is_server_by_mask dal.segment.get_timeouts dal.variable.get_value 2.4 New Python Class: AppConfig The class describes application configuration parameters. Following methods are provided to get description of an application: get_app_id() get_base_app() get_host() get_segment() get_seg_id() get_initialization_depends_from() get_shutdown_depends_from() get_info() get_some_info() 2.5 New Python Class: SegConfig The class describes segment configuration parameters. Following methods are provided to get description of nested segments and applications: get_segment_id() get_segment() get_applications() get_nested_segments() get_controller() get_infrastructure() get_hosts() For both AppConfig and SegConfig classes, the simple functions such as getting the id, application or segment are immediately returned from the Python side without using bindings. However, for more complicated functions that need additional checks and operations the same binding method is used. 5

6 2.6 Python script : dal_dump_app_config.py This script uses the dal.partition.get_all_applications function. Usage: dal_dump_app_config.py [-d database-name] -p name-of-partition [-t [types...]] [-c [ids...]] [-s [ids...]] Options/Arguments: -d database-name name of the database (ignore TDAQ_DB variable) -p name-of-partition name of the partition object -t [types] filter out all applications except given classes (and their subclasses) -c [ids] filter out all applications except those which run on given hosts -s [ids] filter out all applications except those which belong to given segments Figure 2 - An example output of dal_dump_app_config.py Number of applications, ids of the applications, their hosts and segments are retrieved by this script as can be seen in Figure Python script : dal_dump_apps.py This script uses both of the AppConfig.get_info and dal.partition.get_all_applications functions. Usage of this script is the same with the above one. Number of applications, ids of the applications, start and restart arguments, possible program names and environment variables of the applications can be retrieved by this script as shown in Figure 3. Figure 3 - An example output of dal_dump_apps.py The usage and the outputs of both scripts are identical to the C++ versions. 6

7 2.8 Optimizations For dal_dump_apps.py script, in ATLAS partition which has application objects, the execution needs calls of get_info function on this many newly created application objects. In every call from Python causes creation of the same C++ objects and destruction over and over again. Especially recursive function calls such as getting nested segments extends the execution time to a unfeasible period. Therefore, the objects should be reused. For this reason, the following optimizations on two sides are implemented Python side Global maps: initialized_app_config initialized_seg_config When an AppConfig or SegConfig object is needed, first the existence of the object in the maps is checked. If it has initialized before, returned immediately. Else a new object is created and stored in the map. These maps prevents creation of multiple objects that describe the same application or segment. Flags: get_all_applications_called This flag disallows the excessive calls of get_all_applications function. If it is true, then the needed objects are taken from the initialized_app_config map C ++ side Global : std::vector<daq::core::appconfig> all_apps AppConfig objects are stored in this vector after get_all_applications function is called. For the later calls, the objects are taken directly from this vector. <daq::core::segconfig> root_seg The SegConfig object which corresponds to the root segment is stored in this parameter. It is filled after get_segment function call. The nested segments and whole segment tree is accessible from this variable. Flags : get_all_applications_called root_segment_exists These flags are used for filling the above structures in a similar manner. 2.9 Measurements After the optimizations the measurements are done on the computer with the following hardware specifications: Memory: 4 GB Intel(R) Core(TM) 2 Duo CPU 3.16GHz The scripts are tested on ATLAS partition with application objects. Before the optimizations the execution time was over one hour due to the reason explained above. After optimizations the time reduced to the reasonable limits compared to the C++ versions. 7

8 Script dal_dump_app_config.py dal_dump_apps.py Time for filling the data structures ~0.5 s (total) Total time with printing ~7 s ~0.6 s (total) ~240 s Table 1 - Time elapsed for Python scripts 2.10 Tests DAL functions are tested individually by comparing the outputs with the original C++ algorithms. dal_dump_app_config.py and dal_dump_apps.py tested on the ATLAS partition. The correctness of the implementation is checked. The tests are provided for future use. 3 Conclusion The thirteen DAL algorithms core, AppConfig, SegConfig classes and their public functions have been made available for Python. With using the explained method, future modifications on the original C++ algorithms will not cause the need of maintenance on the Python side since the it is actually based on the C++ algorithms. Moreover, the package is integrated into DAL to be used conveniently by the users. For now, the binding code is written manually but if some generic rules on the algorithm parameters will be established, such methods can be generated automatically on fly and/or by genconfig. To conclude my experience in The Summer Student Programme 2017, I have learned a lot about how a software developed and integrated into a huge project, the communication between different team members, the organization a research center which includes more than 13,000 individuals as students, fellows, staff, sub-contractors and visiting scientists from around the world. I am so glad to have the opportunity to join the research teams in a multicultural, multidisciplinary environment through the whole summer while learning and socializing. 4 Acknowledgements I would like to thank my supervisors Igor Soloviev and Giuseppe Avolio for their guidance, their explanations on every detail of the project and support throughout whole time. I have learned a lot about how to be a team member and work in a complex project with the help of them. Also, I would like to thank The Summer Student Team Jennifer Dembski, Eszter Badinova, Céline Delieutraz and Despoina Driva for the great organization and all the help and support in case of any need or problem. 8

The Error Reporting in the ATLAS TDAQ System

The Error Reporting in the ATLAS TDAQ System The Error Reporting in the ATLAS TDAQ System Serguei Kolos University of California Irvine, USA E-mail: serguei.kolos@cern.ch Andrei Kazarov CERN, Switzerland, on leave from Petersburg Nuclear Physics

More information

Data Quality Monitoring Display for ATLAS experiment

Data Quality Monitoring Display for ATLAS experiment Data Quality Monitoring Display for ATLAS experiment Y Ilchenko 1, C Cuenca Almenar 2, A Corso-Radu 2, H Hadavand 1, S Kolos 2, K Slagle 2, A Taffard 2 1 Southern Methodist University, Dept. of Physics,

More information

Building the Trigger Partition Testbed

Building the Trigger Partition Testbed Building the Trigger Partition Testbed David Venhoek August 21, 2015 1 Introduction This document is an introductary description of my Summer Student Project. It explains the general outline of the project,

More information

Kakadu and Java. David Taubman, UNSW June 3, 2003

Kakadu and Java. David Taubman, UNSW June 3, 2003 Kakadu and Java David Taubman, UNSW June 3, 2003 1 Brief Summary The Kakadu software framework is implemented in C++ using a fairly rigorous object oriented design strategy. All classes which are intended

More information

New Persistent Back-End for the ATLAS Online Information Service

New Persistent Back-End for the ATLAS Online Information Service New Persistent Back-End for the ATLAS Online Information Service Igor Soloviev and Alexandru Sicoe The Trigger and Data Acquisition (TDAQ) and detector systems of the ATLAS experiment deploy more than

More information

Data Quality Monitoring at CMS with Machine Learning

Data Quality Monitoring at CMS with Machine Learning Data Quality Monitoring at CMS with Machine Learning July-August 2016 Author: Aytaj Aghabayli Supervisors: Jean-Roch Vlimant Maurizio Pierini CERN openlab Summer Student Report 2016 Abstract The Data Quality

More information

Large Scale Software Building with CMake in ATLAS

Large Scale Software Building with CMake in ATLAS 1 Large Scale Software Building with CMake in ATLAS 2 3 4 5 6 7 J Elmsheuser 1, A Krasznahorkay 2, E Obreshkov 3, A Undrus 1 on behalf of the ATLAS Collaboration 1 Brookhaven National Laboratory, USA 2

More information

arxiv: v1 [physics.ins-det] 16 Oct 2017

arxiv: v1 [physics.ins-det] 16 Oct 2017 arxiv:1710.05607v1 [physics.ins-det] 16 Oct 2017 The ALICE O 2 common driver for the C-RORC and CRU read-out cards Boeschoten P and Costa F for the ALICE collaboration E-mail: pascal.boeschoten@cern.ch,

More information

lecture24: Disjoint Sets

lecture24: Disjoint Sets lecture24: Largely based on slides by Cinda Heeren CS 225 UIUC 22nd July, 2013 Announcements mp6 due tonight mp7 out soon! mt3 tomorrow night (7/23) Optional review instead of lab tomorrow Code Challenge

More information

Object-Oriented Programming

Object-Oriented Programming 13 Object-Oriented Programming Exercises 13.1 Using Java as an example: 13.2 Code reuse: inhertiance, interfaces. In the case of an interface, any class implementing the Comparable interface can be sorted

More information

NanoAODs Summer student report

NanoAODs Summer student report NanoAODs Summer student report Lucia Anna Husová September 6, 2017 The scientist on LHC experiment analyse a huge amount of data every day on the Grid. Thus new methods are requested, how to make the analysis

More information

Rivet. July , CERN

Rivet. July , CERN Rivet Chris Gütschow (UC London) Chris Pollard (Glasgow) Deepak Kar (Witwatersrand) Holger Schulz (Durham) July 13 2016, CERN H. Schulz Rivet 1 / 19 Contents 1 Introduction 2 Basic work cycle 3 Writing

More information

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005

Wrapping a complex C++ library for Eiffel. FINAL REPORT July 1 st, 2005 Wrapping a complex C++ library for Eiffel FINAL REPORT July 1 st, 2005 Semester project Student: Supervising Assistant: Supervising Professor: Simon Reinhard simonrei@student.ethz.ch Bernd Schoeller Bertrand

More information

Cut per region. Marc Verderi GEANT4 collaboration meeting 01/10/2002

Cut per region. Marc Verderi GEANT4 collaboration meeting 01/10/2002 Cut per region Marc Verderi GEANT4 collaboration meeting 01/10/2002 Introduction Cut here = «production threshold»; Not tracking cut; GEANT4 originally designed to allow a unique cut in range; Unique cut

More information

Python in the Cling World

Python in the Cling World Journal of Physics: Conference Series PAPER OPEN ACCESS Python in the Cling World To cite this article: W Lavrijsen 2015 J. Phys.: Conf. Ser. 664 062029 Recent citations - Giving pandas ROOT to chew on:

More information

Functions CHAPTER 5. FIGURE 1. Concrete syntax for the P 2 subset of Python. (In addition to that of P 1.)

Functions CHAPTER 5. FIGURE 1. Concrete syntax for the P 2 subset of Python. (In addition to that of P 1.) CHAPTER 5 Functions The main ideas in this chapter are: first-class functions: functions are values that can be passed as arguments to other functions, returned from functions, stored in lists and dictionaries,

More information

The AAL project: automated monitoring and intelligent analysis for the ATLAS data taking infrastructure

The AAL project: automated monitoring and intelligent analysis for the ATLAS data taking infrastructure Journal of Physics: Conference Series The AAL project: automated monitoring and intelligent analysis for the ATLAS data taking infrastructure To cite this article: A Kazarov et al 2012 J. Phys.: Conf.

More information

Functions CHAPTER 5. FIGURE 1. Concrete syntax for the P 2 subset of Python. (In addition to that of P 1.)

Functions CHAPTER 5. FIGURE 1. Concrete syntax for the P 2 subset of Python. (In addition to that of P 1.) CHAPTER 5 Functions The main ideas in this chapter are: first-class functions: functions are values that can be passed as arguments to other functions, returned from functions, stored in lists and dictionaries,

More information

Summer Student Project Report

Summer Student Project Report Summer Student Project Report Steffen Pade September 6, 2013 Abstract During my summer project here at CERN I was able to work with a - to me - completely new database technology: Oracle s 12c. My task

More information

September Development of favorite collections & visualizing user search queries in CERN Document Server (CDS)

September Development of favorite collections & visualizing user search queries in CERN Document Server (CDS) Development of favorite collections & visualizing user search queries in CERN Document Server (CDS) September 2013 Author: Archit Sharma archit.py@gmail.com Supervisor: Nikolaos Kasioumis CERN Openlab

More information

PyROOT: Seamless Melting of C++ and Python. Pere MATO, Danilo PIPARO on behalf of the ROOT Team

PyROOT: Seamless Melting of C++ and Python. Pere MATO, Danilo PIPARO on behalf of the ROOT Team PyROOT: Seamless Melting of C++ and Python Pere MATO, Danilo PIPARO on behalf of the ROOT Team ROOT At the root of the experiments, project started in 1995 Open Source project (LGPL2) mainly written in

More information

Modeling and Validating Time, Buffering, and Utilization of a Large-Scale, Real-Time Data Acquisition System

Modeling and Validating Time, Buffering, and Utilization of a Large-Scale, Real-Time Data Acquisition System Modeling and Validating Time, Buffering, and Utilization of a Large-Scale, Real-Time Data Acquisition System Alejandro Santos, Pedro Javier García, Wainer Vandelli, Holger Fröning The 2017 International

More information

Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1

Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1 Performance Best Practices Paper for IBM Tivoli Directory Integrator v6.1 and v6.1.1 version 1.0 July, 2007 Table of Contents 1. Introduction...3 2. Best practices...3 2.1 Preparing the solution environment...3

More information

Assignment 7: functions and closure conversion (part 1)

Assignment 7: functions and closure conversion (part 1) Assignment 7: functions and closure conversion (part 1) ECEN 4553 & 5013, CSCI 4555 & 5525 Prof. Jeremy G. Siek November 12, 2008 The main ideas for this week are: first-class functions lexical scoping

More information

Shadowserver reports automated tool

Shadowserver reports automated tool Shadowserver reports automated tool August 2016 Author: Viktor Janevski Supervisor(s): Sebastian Lopienski Stefan Lueders CERN openlab Summer Student Report 2016 Project Specification Every day, CERN receives

More information

Appendix B Boost.Python

Appendix B Boost.Python Financial Modelling in Python By S. Fletcher & C. Gardner 2009 John Wiley & Sons Ltd Appendix B Boost.Python The Boost.Python library provides a framework for seamlessly wrapping C++ classes, functions

More information

Work Project Report: Benchmark for 100 Gbps Ethernet network analysis

Work Project Report: Benchmark for 100 Gbps Ethernet network analysis Work Project Report: Benchmark for 100 Gbps Ethernet network analysis CERN Summer Student Programme 2016 Student: Iraklis Moutidis imoutidi@cern.ch Main supervisor: Balazs Voneki balazs.voneki@cern.ch

More information

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc.

Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc. Building a (resumable and extensible) DSL with Apache Groovy Jesse Glick CloudBees, Inc. Introduction About Me Longtime Jenkins core contributor Primary developer on Jenkins Pipeline Meet Jenkins Pipeline

More information

The ALICE Glance Shift Accounting Management System (SAMS)

The ALICE Glance Shift Accounting Management System (SAMS) Journal of Physics: Conference Series PAPER OPEN ACCESS The ALICE Glance Shift Accounting Management System (SAMS) To cite this article: H. Martins Silva et al 2015 J. Phys.: Conf. Ser. 664 052037 View

More information

pyframe Ryan Reece A light-weight Python framework for analyzing ROOT ntuples in ATLAS University of Pennsylvania

pyframe Ryan Reece A light-weight Python framework for analyzing ROOT ntuples in ATLAS University of Pennsylvania pyframe A light-weight Python framework for analyzing ROOT ntuples in ATLAS Ryan Reece University of Pennsylvania ryan.reece@cern.ch Physics Analysis Tools Meeting, CERN September 21, 2011 What is this

More information

Book keeping. Will post HW5 tonight. OK to work in pairs. Midterm review next Wednesday

Book keeping. Will post HW5 tonight. OK to work in pairs. Midterm review next Wednesday Garbage Collection Book keeping Will post HW5 tonight Will test file reading and writing Also parsing the stuff you reads and looking for some patterns On the long side But you ll have two weeks to do

More information

HippoDraw and Python

HippoDraw and Python HippoDraw and Python Paul F. Kunz Stanford Linear Accelerator Center Brief overview of HippoDraw Use from Python Two Versions Java GUI, uses Jython Qt GUI, uses Python Java version used in screen dumps

More information

The ATLAS Data Flow System for LHC Run 2

The ATLAS Data Flow System for LHC Run 2 The ATLAS Data Flow System for LHC Run 2 Andrei Kazarov on behalf of ATLAS Collaboration 1,2,a) 1 CERN, CH1211 Geneva 23, Switzerland 2 on leave from: Petersburg NPI Kurchatov NRC, Gatchina, Russian Federation

More information

peval Documentation Release Bogdan Opanchuk

peval Documentation Release Bogdan Opanchuk peval Documentation Release 0.1.0 Bogdan Opanchuk January 29, 2016 Contents 1 Introduction 1 2 Implementation details 3 3 Restrictions on functions 5 4 API reference 7 4.1 Core functions..............................................

More information

ENGR 102 Engineering Lab I - Computation

ENGR 102 Engineering Lab I - Computation ENGR 102 Engineering Lab I - Computation Learning Objectives by Week 1 ENGR 102 Engineering Lab I Computation 2 Credits 2. Introduction to the design and development of computer applications for engineers;

More information

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory

Overview. Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Performance, memory SCRIPTING Overview Rationale Division of labour between script and C++ Choice of language(s) Interfacing to C++ Reflection Bindings Serialization Performance, memory Rationale C++ isn't the best choice

More information

CERN openlab II. CERN openlab and. Sverre Jarp CERN openlab CTO 16 September 2008

CERN openlab II. CERN openlab and. Sverre Jarp CERN openlab CTO 16 September 2008 CERN openlab II CERN openlab and Intel: Today and Tomorrow Sverre Jarp CERN openlab CTO 16 September 2008 Overview of CERN 2 CERN is the world's largest particle physics centre What is CERN? Particle physics

More information

Improving Generators Interface to Support LHEF V3 Format

Improving Generators Interface to Support LHEF V3 Format Improving Generators Interface to Support LHEF V3 Format Fernando Cornet-Gomez Universidad de Granada, Spain DESY Summer Student Supervisor: Ewelina M. Lobodzinska September 11, 2014 Abstract The aim of

More information

Garment Documentation

Garment Documentation Garment Documentation Release 0.1 Evan Borgstrom March 25, 2014 Contents i ii A collection of fabric tasks that roll up into a single deploy function. The whole process is coordinated through a single

More information

MythoLogic: problems and their solutions in the evolution of a project

MythoLogic: problems and their solutions in the evolution of a project 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. MythoLogic: problems and their solutions in the evolution of a project István Székelya, Róbert Kincsesb a Department

More information

Webgurukul Programming Language Course

Webgurukul Programming Language Course Webgurukul Programming Language Course Take One step towards IT profession with us Python Syllabus Python Training Overview > What are the Python Course Pre-requisites > Objectives of the Course > Who

More information

G Programming Languages Spring 2010 Lecture 4. Robert Grimm, New York University

G Programming Languages Spring 2010 Lecture 4. Robert Grimm, New York University G22.2110-001 Programming Languages Spring 2010 Lecture 4 Robert Grimm, New York University 1 Review Last week Control Structures Selection Loops 2 Outline Subprograms Calling Sequences Parameter Passing

More information

ALeF: Active Learning Framework for Readability Prediction

ALeF: Active Learning Framework for Readability Prediction ALeF: Active Learning Framework for Readability Prediction Philip van Oosten Véronique Hoste LT 3, Language and Translation Technology Team Atila, September 23, 2010 Overview 1 Problem setting In general

More information

CSE 341, Autumn 2015, Ruby Introduction Summary

CSE 341, Autumn 2015, Ruby Introduction Summary CSE 341, Autumn 2015, Ruby Introduction Summary Disclaimer: This lecture summary is not necessarily a complete substitute for atting class, reading the associated code, etc. It is designed to be a useful

More information

CS61A Notes Week 13: Interpreters

CS61A Notes Week 13: Interpreters CS61A Notes Week 13: Interpreters Read-Eval Loop Unlike Python, the result of evaluating an expression is not automatically printed. Instead, Logo complains if the value of any top-level expression is

More information

AGIS: The ATLAS Grid Information System

AGIS: The ATLAS Grid Information System AGIS: The ATLAS Grid Information System Alexey Anisenkov 1, Sergey Belov 2, Alessandro Di Girolamo 3, Stavro Gayazov 1, Alexei Klimentov 4, Danila Oleynik 2, Alexander Senchenko 1 on behalf of the ATLAS

More information

VIRTUAL FUNCTIONS Chapter 10

VIRTUAL FUNCTIONS Chapter 10 1 VIRTUAL FUNCTIONS Chapter 10 OBJECTIVES Polymorphism in C++ Pointers to derived classes Important point on inheritance Introduction to virtual functions Virtual destructors More about virtual functions

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 04 Tutorial 1, Part 1 Ubuntu Hi everyone, welcome to the first

More information

ATLAS TDAQ System Administration: Master of Puppets

ATLAS TDAQ System Administration: Master of Puppets ATLAS TDAQ System Administration: Master of Puppets S Ballestrero 1, F Brasolin 2, D Fazio 3, C Gament 3,4, C J Lee 5,8, D A Scannicchio 6, M S Twomey 7 1 University of Johannesburg, South Africa 2 Istituto

More information

Programming Languages. Streams Wrapup, Memoization, Type Systems, and Some Monty Python

Programming Languages. Streams Wrapup, Memoization, Type Systems, and Some Monty Python Programming Languages Streams Wrapup, Memoization, Type Systems, and Some Monty Python Quick Review of Constructing Streams Usually two ways to construct a stream. Method 1: Use a function that takes a(n)

More information

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python

About Python. Python Duration. Training Objectives. Training Pre - Requisites & Who Should Learn Python About Python Python course is a great introduction to both fundamental programming concepts and the Python programming language. By the end, you'll be familiar with Python syntax and you'll be able to

More information

Python Training. Complete Practical & Real-time Trainings. A Unit of SequelGate Innovative Technologies Pvt. Ltd.

Python Training. Complete Practical & Real-time Trainings. A Unit of SequelGate Innovative Technologies Pvt. Ltd. Python Training Complete Practical & Real-time Trainings A Unit of. ISO Certified Training Institute Microsoft Certified Partner Training Highlights : Complete Practical and Real-time Scenarios Session

More information

flask-dynamo Documentation

flask-dynamo Documentation flask-dynamo Documentation Release 0.1.2 Randall Degges January 22, 2018 Contents 1 User s Guide 3 1.1 Quickstart................................................ 3 1.2 Getting Help...............................................

More information

Implementation of Customized FindBugs Detectors

Implementation of Customized FindBugs Detectors Implementation of Customized FindBugs Detectors Jerry Zhang Department of Computer Science University of British Columbia jezhang@cs.ubc.ca ABSTRACT There are a lot of static code analysis tools to automatically

More information

Assignment3 CS206 Intro to Data Structures Fall Part 1 (50 pts) due: October 13, :59pm Part 2 (150 pts) due: October 20, :59pm

Assignment3 CS206 Intro to Data Structures Fall Part 1 (50 pts) due: October 13, :59pm Part 2 (150 pts) due: October 20, :59pm Part 1 (50 pts) due: October 13, 2013 11:59pm Part 2 (150 pts) due: October 20, 2013 11:59pm Important Notes This assignment is to be done on your own. If you need help, see the instructor or TA. Please

More information

An SQL-based approach to physics analysis

An SQL-based approach to physics analysis Journal of Physics: Conference Series OPEN ACCESS An SQL-based approach to physics analysis To cite this article: Dr Maaike Limper 2014 J. Phys.: Conf. Ser. 513 022022 View the article online for updates

More information

High Performance Computing on MapReduce Programming Framework

High Performance Computing on MapReduce Programming Framework International Journal of Private Cloud Computing Environment and Management Vol. 2, No. 1, (2015), pp. 27-32 http://dx.doi.org/10.21742/ijpccem.2015.2.1.04 High Performance Computing on MapReduce Programming

More information

Physics Analysis Software Framework for Belle II

Physics Analysis Software Framework for Belle II Physics Analysis Software Framework for Belle II Marko Starič Belle Belle II collaboration Jožef Stefan Institute, Ljubljana CHEP 2015 M. Starič (IJS) Physics Analysis Software Okinawa, 13-17 April 2015

More information

Patterns Continued and Concluded. July 26, 2017

Patterns Continued and Concluded. July 26, 2017 Patterns Continued and Concluded July 26, 2017 Review Quiz What is the purpose of the Singleton pattern? A. To advertise to other developers that the object should only be modified by `main()` B.To prevent

More information

The Run 2 ATLAS Analysis Event Data Model

The Run 2 ATLAS Analysis Event Data Model The Run 2 ATLAS Analysis Event Data Model Marcin Nowak, BNL On behalf of the ATLAS Analysis Software Group and Event Store Group 16 th International workshop on Advanced Computing and Analysis Techniques

More information

Verification and Diagnostics Framework in ATLAS Trigger/DAQ

Verification and Diagnostics Framework in ATLAS Trigger/DAQ Verification and Diagnostics Framework in ATLAS Trigger/DAQ M.Barczyk, D.Burckhart-Chromek, M.Caprini 1, J.Da Silva Conceicao, M.Dobson, J.Flammer, R.Jones, A.Kazarov 2,3, S.Kolos 2, D.Liko, L.Lucio, L.Mapelli,

More information

Object Oriented Programming

Object Oriented Programming Object Oriented Programming Haleh Ashki 2015, updated Peter Beerli 2017 Traditionally, a program has been seen as a recipe a set of instructions that you follow from start to finish in order to complete

More information

A Class to Manage Large Ensembles and Batch Execution in Python

A Class to Manage Large Ensembles and Batch Execution in Python Introduction Ensemble Class Argument Expansion A Class to Manage Large Ensembles and Batch Execution in Python PyCon Canada Andre R. Erler November 12 th, 2016 Introduction Ensemble Class Argument Expansion

More information

C02: Overview of Software Development and Java

C02: Overview of Software Development and Java CISC 3120 C02: Overview of Software Development and Java Hui Chen Department of Computer & Information Science CUNY Brooklyn College 08/31/2017 CUNY Brooklyn College 1 Outline Recap and issues Brief introduction

More information

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch

Class diagrams. Modeling with UML Chapter 2, part 2. Class Diagrams: details. Class diagram for a simple watch Class diagrams Modeling with UML Chapter 2, part 2 CS 4354 Summer II 2014 Jill Seaman Used to describe the internal structure of the system. Also used to describe the application domain. They describe

More information

Rocking with Racket. Marc Burns Beatlight Inc

Rocking with Racket. Marc Burns Beatlight Inc Rocking with Racket Marc Burns Beatlight Inc What am I doing here? My first encounter with Racket was in 2010 I wanted to use Racket in industry The opportunity arose in June 2014: Loft What am I doing

More information

} else if( Ellipse *e = dynamic_cast<ellipse *>(shape) ) { } else if( Square *s = dynamic_cast<square *>(shape) ) {

} else if( Ellipse *e = dynamic_cast<ellipse *>(shape) ) { } else if( Square *s = dynamic_cast<square *>(shape) ) { Typelist Meta-Algorithms The other day I was reading Andrei Alexandrescu s clever implementation of an ad hoc Visitor that I had unaccountably overlooked when it first appeared. (See Typelists and Applications,

More information

PoS(High-pT physics09)036

PoS(High-pT physics09)036 Triggering on Jets and D 0 in HLT at ALICE 1 University of Bergen Allegaten 55, 5007 Bergen, Norway E-mail: st05886@alf.uib.no The High Level Trigger (HLT) of the ALICE experiment is designed to perform

More information

Summary of the LHC Computing Review

Summary of the LHC Computing Review Summary of the LHC Computing Review http://lhc-computing-review-public.web.cern.ch John Harvey CERN/EP May 10 th, 2001 LHCb Collaboration Meeting The Scale Data taking rate : 50,100, 200 Hz (ALICE, ATLAS-CMS,

More information

STATUS OF PLANS TO USE CONTAINERS IN THE WORLDWIDE LHC COMPUTING GRID

STATUS OF PLANS TO USE CONTAINERS IN THE WORLDWIDE LHC COMPUTING GRID The WLCG Motivation and benefits Container engines Experiments status and plans Security considerations Summary and outlook STATUS OF PLANS TO USE CONTAINERS IN THE WORLDWIDE LHC COMPUTING GRID SWISS EXPERIENCE

More information

PTN-202: Advanced Python Programming Course Description. Course Outline

PTN-202: Advanced Python Programming Course Description. Course Outline PTN-202: Advanced Python Programming Course Description This 4-day course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.

More information

Hue Application for Big Data Ingestion

Hue Application for Big Data Ingestion Hue Application for Big Data Ingestion August 2016 Author: Medina Bandić Supervisor(s): Antonio Romero Marin Manuel Martin Marquez CERN openlab Summer Student Report 2016 1 Abstract The purpose of project

More information

Managing the Database

Managing the Database Slide 1 Managing the Database Objectives of the Lecture : To consider the roles of the Database Administrator. To consider the involvmentof the DBMS in the storage and handling of physical data. To appreciate

More information

Designing Procedural 4GL Applications through UML Modeling

Designing Procedural 4GL Applications through UML Modeling Designing Procedural 4GL Applications through UML Modeling Shiri Davidson Mila Keren Sara Porat Gabi Zodik IBM Haifa Research Lab Matam - Advanced Technology Center Haifa 31905, Israel (shiri, keren, porat,

More information

The ATLAS Data Acquisition System: from Run 1 to Run 2

The ATLAS Data Acquisition System: from Run 1 to Run 2 Available online at www.sciencedirect.com Nuclear and Particle Physics Proceedings 273 275 (2016) 939 944 www.elsevier.com/locate/nppp The ATLAS Data Acquisition System: from Run 1 to Run 2 William Panduro

More information

Homework 1. Generic Data Structures for Storing CSPs. 1 Help 1

Homework 1. Generic Data Structures for Storing CSPs. 1 Help 1 Fall Semester, 2016 CSCE 421/821: Foundations of Constraint Processing B.Y. Choueiry Homework 1 Generic Data Structures for Storing CSPs Assigned: Monday, August 29, 2016 Due: Friday, September 9, 2016

More information

CSC108: Introduction to Computer Programming. Lecture 11

CSC108: Introduction to Computer Programming. Lecture 11 CSC108: Introduction to Computer Programming Lecture 11 Wael Aboulsaadat Acknowledgment: these slides are based on material by: Velian Pandeliev, Diane Horton, Michael Samozi, Jennifer Campbell, and Paul

More information

Multiple 802.1Q Spanning Trees

Multiple 802.1Q Spanning Trees 802.1 HILI Working Group IEEE LMSC Meeting, July 1998 Norman Finn Michael Smith July 7, 1998 1/16 Outline Why use one spanning tree or more than one? How many spanning trees? How to encapsulate BPDUs?

More information

Singularity in CMS. Over a million containers served

Singularity in CMS. Over a million containers served Singularity in CMS Over a million containers served Introduction The topic of containers is broad - and this is a 15 minute talk! I m filtering out a lot of relevant details, particularly why we are using

More information

Friday, 11 April 14. Advanced methods for creating decorators Graham Dumpleton PyCon US - April 2014

Friday, 11 April 14. Advanced methods for creating decorators Graham Dumpleton PyCon US - April 2014 Advanced methods for creating decorators Graham Dumpleton PyCon US - April 2014 Intermission Rant about the history of this talk and why this topic matters. Python decorator syntax @function_wrapper def

More information

The new inter process communication middle-ware for the ATLAS Trigger and Data Acquisition system

The new inter process communication middle-ware for the ATLAS Trigger and Data Acquisition system 1 2 The new inter process communication middle-ware for the ATLAS Trigger and Data Acquisition system 3 4 5 6 Serguei Kolos 1 and Reiner Hauser 2 on behalf of the ATLAS TDAQ Collaboration 1. University

More information

ENVIRONMENT MODEL: FUNCTIONS, DATA 18

ENVIRONMENT MODEL: FUNCTIONS, DATA 18 ENVIRONMENT MODEL: FUNCTIONS, DATA 18 COMPUTER SCIENCE 61A Jon Kotker and Tom Magrino July 18, 2012 1 Motivation Yesterday, we introduced the environment model of computation as an alternative to the earlier

More information

CSCS CERN videoconference CFD applications

CSCS CERN videoconference CFD applications CSCS CERN videoconference CFD applications TS/CV/Detector Cooling - CFD Team CERN June 13 th 2006 Michele Battistin June 2006 CERN & CFD Presentation 1 TOPICS - Some feedback about already existing collaboration

More information

Description of the program generator utility, Generv. An overview with historical perspectives.

Description of the program generator utility, Generv. An overview with historical perspectives. Description of the program generator utility, Generv An overview with historical perspectives. The generator utility is a simple Python script that will, with a little guidance, create a controller and

More information

Lecture 16: Static Semantics Overview 1

Lecture 16: Static Semantics Overview 1 Lecture 16: Static Semantics Overview 1 Lexical analysis Produces tokens Detects & eliminates illegal tokens Parsing Produces trees Detects & eliminates ill-formed parse trees Static semantic analysis

More information

THE ATLAS DATA ACQUISITION SYSTEM IN LHC RUN 2

THE ATLAS DATA ACQUISITION SYSTEM IN LHC RUN 2 THE ATLAS DATA ACQUISITION SYSTEM IN LHC RUN 2 M. E. Pozo Astigarraga, on behalf of the ATLAS Collaboration CERN, CH-1211 Geneva 23, Switzerland E-mail: eukeni.pozo@cern.ch The LHC has been providing proton-proton

More information

Principles of Programming Languages. Objective-C. Joris Kluivers

Principles of Programming Languages. Objective-C. Joris Kluivers Principles of Programming Languages Objective-C Joris Kluivers joris.kluivers@gmail.com History... 3 NeXT... 3 Language Syntax... 4 Defining a new class... 4 Object identifiers... 5 Sending messages...

More information

SYSC 2006 C Winter String Processing in C. D.L. Bailey, Systems and Computer Engineering, Carleton University

SYSC 2006 C Winter String Processing in C. D.L. Bailey, Systems and Computer Engineering, Carleton University SYSC 2006 C Winter 2012 String Processing in C D.L. Bailey, Systems and Computer Engineering, Carleton University References Hanly & Koffman, Chapter 9 Some examples adapted from code in The C Programming

More information

Manage Workflows. Workflows and Workflow Actions

Manage Workflows. Workflows and Workflow Actions On the Workflows tab of the Cisco Finesse administration console, you can create and manage workflows and workflow actions. Workflows and Workflow Actions, page 1 Add Browser Pop Workflow Action, page

More information

pyramid_assetmutator Documentation

pyramid_assetmutator Documentation pyramid_assetmutator Documentation Release 1.0b1 Seth Davis February 22, 2017 Contents 1 Overview 1 2 Installation 3 3 Setup 5 4 Usage 7 5 Mutators 11 6 Settings 13 7 Asset Concatenation (a.k.a Asset

More information

Assignment 7: functions and closure conversion

Assignment 7: functions and closure conversion Assignment 7: functions and closure conversion ECEN 4553 & 5013, CSCI 4555 & 5525 Prof. Jeremy G. Siek October 20, 2007 The main ideas for this week are: first-class functions lexical scoping of variables

More information

FINAL REPORT 04/25/2015 FINAL REPORT SUNY CANTON MOBILE APPLICATION

FINAL REPORT 04/25/2015 FINAL REPORT SUNY CANTON MOBILE APPLICATION FINAL REPORT SUNY CANTON MOBILE APPLICATION GROUP MEMBERS: Alexander Royce & Luke Harper SUNY CANTON SPRING 2015 Table of Contents List of Figures... 2 Research... 4 Programming Language... 4 Android Studio...

More information

Worldwide Production Distributed Data Management at the LHC. Brian Bockelman MSST 2010, 4 May 2010

Worldwide Production Distributed Data Management at the LHC. Brian Bockelman MSST 2010, 4 May 2010 Worldwide Production Distributed Data Management at the LHC Brian Bockelman MSST 2010, 4 May 2010 At the LHC http://op-webtools.web.cern.ch/opwebtools/vistar/vistars.php?usr=lhc1 Gratuitous detector pictures:

More information

dyn dynamic object management

dyn dynamic object management 1 dyn dynamic object management Thomas Grill, Vienna http://grrrr.org September 2004 Abstract dyn 1 is a sketch of a uniform, well-documented programming interface to Pure Data s native object management

More information

A Scalable and Reliable Message Transport Service for the ATLAS Trigger and Data Acquisition System

A Scalable and Reliable Message Transport Service for the ATLAS Trigger and Data Acquisition System A Scalable and Reliable Message Transport Service for the ATLAS Trigger and Data Acquisition System Andrei Kazarov, CERN / Petersburg NPI, NRC Kurchatov Institute 19th IEEE Real Time Conference 2014, Nara

More information

Automatizing the Online Filter Test Management for a General-Purpose Particle Detector

Automatizing the Online Filter Test Management for a General-Purpose Particle Detector Automatizing the Online Filter Test Management for a General-Purpose Particle Detector Rodrigo Coura Torres a,, Andre Rabello dos Anjos b, José Manoel de Seixas a, Igor Soloviev c a Federal University

More information

ECE 449 OOP and Computer Simulation Lecture 11 Design Patterns

ECE 449 OOP and Computer Simulation Lecture 11 Design Patterns ECE 449 Object-Oriented Programming and Computer Simulation, Fall 2017, Dept. of ECE, IIT 1/60 ECE 449 OOP and Computer Simulation Lecture 11 Design Patterns Professor Jia Wang Department of Electrical

More information

Chapter 12: Query Processing. Chapter 12: Query Processing

Chapter 12: Query Processing. Chapter 12: Query Processing Chapter 12: Query Processing Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Chapter 12: Query Processing Overview Measures of Query Cost Selection Operation Sorting Join

More information

High Speed DAQ with DPDK

High Speed DAQ with DPDK High Speed DAQ with DPDK June - August 2016 Author: Saiyida Noor Fatima Supervisors: Niko Neufeld Sebastian Valat CERN Openlab Summer Student Report 2016 Acknowledgment My sincere thanks to my supervisor

More information

Investigation on Oracle GoldenGate Veridata for Data Consistency in WLCG Distributed Database Environment

Investigation on Oracle GoldenGate Veridata for Data Consistency in WLCG Distributed Database Environment Investigation on Oracle GoldenGate Veridata for Data Consistency in WLCG Distributed Database Environment August 2014 Author: Anti Asko Supervisor(s): Lorena Lobato Pardavila CERN Openlab Summer Student

More information