Distributed Analysis using Ganga I.Ideas behind Ganga II.Getting started III.Running ATLAS applications Distributed Analysis Tutorial ATLAS Computing &

Slides:



Advertisements
Similar presentations
User view Ganga classes and functions can be used interactively at a Python prompt, can be referenced in scripts, or can be used indirectly via a Graphical.
Advertisements

Ganga Status and Outlook K. Harrison (University of Cambridge) 16th GridPP Meeting Queen Mary, University of London, 27th-29th June 2006
Overview of Ganga documentation K. Harrison University of Cambridge Ganga Developer Days CERN, 9th-13th July 2007.
GANGA Overview Germán Carrera, Alfredo Solano (CNB/CSIC) EMBRACE COURSE Monday 19th of February to Friday 23th. CNB-CSIC Madrid.
Computing Lectures Introduction to Ganga 1 Ganga: Introduction Object Orientated Interactive Job Submission System –Written in python –Based on the concept.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Introduction to GANGA Hurng-Chun Lee 27 Feb.
David Adams ATLAS DIAL Distributed Interactive Analysis of Large datasets David Adams BNL March 25, 2003 CHEP 2003 Data Analysis Environment and Visualization.
K.Harrison CERN, 23rd October 2002 HOW TO COMMISSION A NEW CENTRE FOR LHCb PRODUCTION - Overview of LHCb distributed production system - Configuration.
Israel Cluster Structure. Outline The local cluster Local analysis on the cluster –Program location –Storage –Interactive analysis & batch analysis –PBS.
GETTING STARTED ON THE GRID: W. G. SCOTT (RAL/PPD) RAL PHYSICS MEETING TUES 15 MAY GENERATED 10K SAMPLES IN EACH CHANNEL ON LXPLUS (IN 2006) SIMULATED/DIGITISDED.
Ganga Developments Karl Harrison (University of Cambridge) 18th GridPP Meeting University of Glasgow, 20th-21st March 2007
The ATLAS Production System. The Architecture ATLAS Production Database Eowyn Lexor Lexor-CondorG Oracle SQL queries Dulcinea NorduGrid Panda OSGLCG The.
Ch 21 Command Syntax Using the DIR Command with Parameters and Wildcards.
David Adams ATLAS ATLAS Distributed Analysis David Adams BNL March 18, 2004 ATLAS Software Workshop Grid session.
K. Harrison CERN, 20th April 2004 AJDL interface and LCG submission - Overview of AJDL - Using AJDL from Python - LCG submission.
Overview of LHCb applications and software environment LHCb software tutorial - March
1 Overview of the Application Hosting Environment Stefan Zasada University College London.
Belle MC Production on Grid 2 nd Open Meeting of the SuperKEKB Collaboration Soft/Comp session 17 March, 2009 Hideyuki Nakazawa National Central University.
Bookkeeping Tutorial. Bookkeeping & Monitoring Tutorial2 Bookkeeping content  Contains records of all “jobs” and all “files” that are created by production.
K. Harrison CERN, 25th September 2003 GANGA: GAUDI/ATHENA AND GRID ALLIANCE - Project news - Ganga release 1 - Work towards Ganga release 2 - Interaction.
November SC06 Tampa F.Fanzago CRAB a user-friendly tool for CMS distributed analysis Federica Fanzago INFN-PADOVA for CRAB team.
Submitting jobs to the grid Argonne Jamboree January 2010 R. Yoshida (revised March 2010) Esteban Fullana.
Ganga A quick tutorial Asterios Katsifodimos Trainer, University of Cyprus Nicosia, Feb 16, 2009.
David Adams ATLAS ADA, ARDA and PPDG David Adams BNL June 28, 2004 PPDG Collaboration Meeting Williams Bay, Wisconsin.
Architecture and ATLAS Western Tier 2 Wei Yang ATLAS Western Tier 2 User Forum meeting SLAC April
Guide to Linux Installation and Administration, 2e1 Chapter 11 Using Advanced Administration Techniques.
Introduction to Ganga Karl Harrison (University of Cambridge) ATLAS Distributed Analysis Tutorial Milano, 5-6 February 2007
Getting started DIRAC Project. Outline  DIRAC information system  Documentation sources  DIRAC users and groups  Registration with DIRAC  Getting.
T3 analysis Facility V. Bucard, F.Furano, A.Maier, R.Santana, R. Santinelli T3 Analysis Facility The LHCb Computing Model divides collaboration affiliated.
David Adams ATLAS DIAL/ADA JDL and catalogs David Adams BNL December 4, 2003 ATLAS software workshop Production session CERN.
A PanDA Backend for the Ganga Analysis Interface J. Elmsheuser 1, D. Liko 2, T. Maeno 3, P. Nilsson 4, D.C. Vanderster 5, T. Wenaus 3, R. Walker 1 1: Ludwig-Maximilians-Universität.
Ganga 4 Basics - Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, November 2005.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 – The Ganga Evolution Andrew Maier.
Distributed Analysis K. Harrison LHCb Collaboration Week, CERN, 1 June 2006.
Ganga 4 Basics - Tutorial Jakub T. Moscicki ARDA/LHCb Ganga Tutorial, September 2006.
April 27, 2006 The New GANGA GUI 26th LHCb Software Week C L Tan
Distributed Computing and Ganga Karl Harrison (University of Cambridge) 3rd LHCb-UK Software Course National e-Science Centre, Edinburgh, 8-10 January.
EGEE-II INFSO-RI Enabling Grids for E-sciencE EGEE and gLite are registered trademarks Ganga User Interface EGEE Review Jakub Moscicki.
1 DIRAC Job submission A.Tsaregorodtsev, CPPM, Marseille LHCb-ATLAS GANGA Workshop, 21 April 2004.
K. Harrison CERN, 3rd March 2004 GANGA CONTRIBUTIONS TO ADA RELEASE IN MAY - Outline of Ganga project - Python support for AJDL - LCG analysis service.
K. Harrison CERN, 22nd September 2004 GANGA: ADA USER INTERFACE - Ganga release status - Job-Options Editor - Python support for AJDL - Job Builder - Python.
Distributed Data Analysis with GANGA (Tutorial) Alexander Zaytsev Budker Institute of Nuclear Physics (BudkerINP), Novosibirsk On the basis of GANGA EGEE.
Using Ganga for physics analysis Karl Harrison (University of Cambridge) ATLAS Distributed Analysis Tutorial Milano, 5-6 February 2007
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
2 June 20061/17 Getting started with Ganga K.Harrison University of Cambridge Tutorial on Distributed Analysis with Ganga CERN, 2.
David Adams ATLAS ATLAS-ARDA strategy and priorities David Adams BNL October 21, 2004 ARDA Workshop.
ATLAS-specific functionality in Ganga - Requirements for distributed analysis - ATLAS considerations - DIAL submission from Ganga - Graphical interfaces.
ADA Job Builder A Graphical Approach to Job Building ATLAS Software and Computing Workshop May 2005 Chun Lik Tan
INFSO-RI Enabling Grids for E-sciencE Using of GANGA interface for Athena applications A. Zalite / PNPI.
CERN Tutorial, September Overview of LHCb applications and software environment.
Ganga development - Theory and practice - Ganga 3 - Ganga 4 design - Ganga 4 components and framework - Conclusions K. Harrison CERN, 25th May 2005.
K. Harrison CERN, 21st February 2005 GANGA: ADA USER INTERFACE - Ganga release Python client for ADA - ADA job builder - Ganga release Conclusions.
K. Harrison BNL, 29th August 2003 THE GANGA PROJECT -Project objectives and organisation - Ganga design - Current status of software - Conclusions.
David Adams ATLAS ATLAS Distributed Analysis (ADA) David Adams BNL December 5, 2003 ATLAS software workshop CERN.
David Adams ATLAS ATLAS Distributed Analysis and proposal for ATLAS-LHCb system David Adams BNL March 22, 2004 ATLAS-LHCb-GANGA Meeting.
INFSO-RI Enabling Grids for E-sciencE Ganga 4 Technical Overview Jakub T. Moscicki, CERN.
ATLAS Distributed Analysis DISTRIBUTED ANALYSIS JOBS WITH THE ATLAS PRODUCTION SYSTEM S. González D. Liko
A GANGA tutorial Professor Roger W.L. Jones Lancaster University.
David Adams ATLAS ADA: ATLAS Distributed Analysis David Adams BNL December 15, 2003 PPDG Collaboration Meeting LBL.
ATLAS Physics Analysis Framework James R. Catmore Lancaster University.
Joe Foster 1 Two questions about datasets: –How do you find datasets with the processes, cuts, conditions you need for your analysis? –How do.
Seven things you should know about Ganga K. Harrison (University of Cambridge) Distributed Analysis Tutorial ATLAS Software & Computing Workshop, CERN,
Starting Analysis with Athena (Esteban Fullana Torregrosa) Rik Yoshida High Energy Physics Division Argonne National Laboratory.
User view Ganga classes and functions can be used interactively at a Python prompt, can be referenced in scripts, or can be used indirectly via a Graphical.
Grid User Interface:Ganga Farida Fassi Master de Physique Informatique Rabat, Maroc th, May, 2011.
Distrubuited Analysis using GANGA
L’analisi in LHCb Angelo Carbone INFN Bologna
Submit BOSS Jobs on Distributed Computing System
The Ganga User Interface for Physics Analysis on Distributed Resources
Presentation transcript:

Distributed Analysis using Ganga I.Ideas behind Ganga II.Getting started III.Running ATLAS applications Distributed Analysis Tutorial ATLAS Computing & Software Workshop, München, March Karl Harrison / University of Cambridge

29 March 20072/31 Ganga basics Depending on context, Ganga can be any of: (A) a Hindu goddess (B) an hallucinogenic drug (C) a job-management framework (Gaudi/Athena and Grid Alliance), implemented in Python, that simplifies running jobs on the Grid Anyone expecting a presentation on (A) or (B) is going to be disappointed Some have suggested: A + B = C Sculpture of Ganga in cave temple, Elephanta Island, Mumbai harbour Ganga, or ganja, is prepared from the plant cannabis sativa

29 March 20073/31 Ganga as a job-management framework (1) Ganga is developed as ATLAS-LHCb common project Ganga (current release), has built-in support for applications based on Athena framework, for JobTransforms and for DQ2 data-management system - Ganga 4.3 (release early in April) will additionally be interfaced with AMI and TNT Component model allows customisations for other types of application, e.g. ROOT Ganga provides a uniform interface for accessing different types of processing system - Allow trivial switching between testing on local batch system and running full- scale analysis on the Grid Job definition Job submission

29 March 20074/31 Ganga as a job-management framework (2) Whenever started, Ganga runs a monitoring loop in the background - Track progress of submitted jobs - Retrieve outputs of completed jobs - Check validity of user credentials: Grid proxy and/or AFS token Ganga stores job information locally or (Ganga 4.3) on a remote server with certificate-based authentication Job inputs and outputs are kept in Ganga workspace until moved or deleted by user User can modify code without affecting a submitted job Monitoring Archival

29 March 20075/31 Ganga job abstraction A job in Ganga is constructed from a set of building blocks, not all required for every job Merger Application Backend Input Dataset Output Dataset Splitter Data read by application Data written by application Rule for dividing into subjobs Rule for combining outputs Where to run What to run Job

29 March 20076/31 Plugin classes Athena GangaObject IApplication IBackendIDataset ISplitterIMerger LCG -CE -requirements -jobtype -middleware -id -status -reason -actualCE -exitcode -atlas_release -max_events -options -option_file -user_setupfile -user_area User System Plugin Interfaces Example plugins and schemas Ganga handles many types of Application, Backend, Dataset, Splitter and Merger, implemented as plugin classes Each plugin class has its own schema New plugin classes can readily be added: the system is extensible

29 March 20077/31 Applications and Backends Running of a particular Application on a given Backend is enabled by implementing an appropriate adapter component or Runtime Handler –Can often use same Runtime Handler for more than one Backend: less coding PBSOSG NorduGrid LocalLSFPANDA US-ATLAS WMS LHCb WMS Executable Athena (Simulation/Digitisation/ Reconstruction/Analysis) AthenaMC (Production) Gauss/Boole/Brunel/DaVinci (Simulation/Digitisation/ Reconstruction/Analysis) LHCbExperiment neutralATLAS Available in Ganga 4.2 Work in progress New in Ganga 4.3

29 March 20078/31 Help with Ganga Ganga documentation can be found in the User Guides section of the Ganga web side: –Most relevant items are: Installation Working with Ganga - general introduction to functionality GUI manual - introduction to graphical interface Link to ATLAS Wiki page for distributed analysis using Ganga – –Tomorrow’s hands-on sessions will use this For problems or feature requests, do any of the following: –Use hypernews forum for Ganga users and developers: –Send to –Submit a report via Ganga’s bug-submission page in Savannah: Should either login to Savannah first, or give address

29 March 20079/31 Installation for distributed analysis with Ganga Software for distributed analysis with Ganga is already installed at CERN and a number of other sites If needed, you can perform your own installation –Install the ATLAS software See: –To be able to access LCG resources, install LCG user interface See: –Install DQ2 client See: –Install Ganga Download installation script: Perform installation of latest release using: With Ganga 4.3, will be able to add GangaNorduGrid to package list –Automatically install NorduGrid client software python ganga-install --extern=GangaAtlas,GangaGUI,GangaPlotter last

29 March /31 Setting up for distributed analysis with Ganga Setup sequence is as follows –Ensure that you have a Grid certificate installed, and that you are registered with the ATLAS Virtual Organisation –Setup environment for Athena, then checkout and build UserAnalysis package (or equivalent) –Setup the environment for using LCG client tools –Setup the environment for using DQ2 –Setup the environment for using Ganga On an lxplus account at CERN, Ganga setup is performed using: Ganga setup at other sites should ensure the following: –Directory containing ganga executable is added to PATH – Detailed setup instructions given as part of hands-on exercises source /afs/cern.ch/sw/ganga/install/etc/setup-atlas.sh Optional, but sometimes useful GANGA_CONFIG_PATH is set to GangaAtlas/Atlas.ini

29 March /31 Using Ganga Command Line Interface in Python (CLIP) provides interactive job definition and submission from an enhanced Python shell (IPython) –Especially good for trying things out, and seeing how the system works Scripts, which may contain any Python/IPython or CLIP commands, allow automation of repetitive tasks Scripts included in distribution enable kind of approach traditionally used when submitting jobs to a local batch system Graphical User Interface (GUI) allows job management based on mouse selections and field completion –Lots of configuration possibilities Ganga allows users to work in a variety of ways

29 March /31 Ganga startup and configuration files ganga --help ganga -g ganga --gui & ganga Before processing.gangarc, Ganga processes, in the order they are specified, any configuration files pointed to by the environment variable GANGA_CONFIG_PATH – This makes possible the use of group configuration files, but allows settings to be overridden on a user-by-user basis  print Ganga help information  start GUI session  run specified script in Ganga environment ganga  start CLIP session Ganga can be invoked in any of the following ways: – If user doesn’t have a valid proxy then his/her Grid passphrase is requested When Ganga is first run, a configuration file.gangarc is created in the user’s home directory – The file includes comments on the configuration possibilities – The latest default configuration file can always be obtained with:

29 March /31 Ganga workspace Ganga creates a directory gangadir in your home directory and uses this for storing job-related files and information –You can’t move this directory but, before running Ganga, you can create ~/gangadir as a link to another location –Should delete jobs when they are no longer needed, so that Ganga input/output files don’t exhaust disk quota gangadir repository input Local templates output workspace Remote gui jobs6667

29 March /31 Python commands Ganga is developed in Python, making use of IPython extensions All Python/IPython commands can be used at the prompt in a Ganga CLIP session, and the syntax for CLIP and Python commands is the same Information about Python can be found at: –If you’re new to Python, the on-line tutorial is very helpful The following are often useful # A hash (#) marks the start of a comment # A slash (\) at the end of a line indicates that # the following line is a continuation dir() # List currently available objects help() # Give help help( item ) # Give help on specified item x = 5 # Assign value to variable print x # Print value of variable ctrl-D # Exit from session

29 March /31 IPython commands Information about IPython extensions can be found at: One useful extension is the possibility to use shell commands from Python, together with both shell variables and Python variables # Use ! before shell commands # Use $ before Python variables # Use $$ before shell variables here = ‘where the heart is’ !echo $$HOME is $here !ls $$HOME/mySubdir !emacs # Start emacs session !zsh # Give shell prompt Exit # Exit from session

29 March /31 Ganga CLIP commands (1) Ganga commands are explained in the guide Working with Ganga: From a CLIP session, available classes, objects and functions may be listed, and help can be requested for each Useful commands include the following plugins( ‘type’) # List plugins of specified type: # ‘applications’, ‘backends’, etc j1 = Job( backend =LSF() ) # Create a new job for LSF a1 = Executable() # Create Executable application j1.application = a1 # Set value for job’s application j1.backend = LCG() # Change job’s backend to LCG export( j1, ‘myJob.py’ ) # Write job to specified file load( ‘myJob.py’ ) # Load job(s) from specified file j2 = j1.copy() # Create j2 as a copy of job j1 jobs # List jobs jobs[ i ].subjobs # List subjobs for split job i

29 March /31 Ganga CLIP commands (2) When a job j has been defined, the following methods can be used Once a job has been submitted, it can no longer be modified, and it cannot be resubmitted, but the job can be copied and the copy can be modified/submitted Ganga supports use of templates, which can be used as the basis of a job definition j.submit() # Submit the job j.kill() # Kill the job (if running) j.remove() # Kill the job and delete associated files j.peek() # List files in job’s output directory t = JobTemplate() # Create template templates # List templates j3 = Job( templates[ i ] ) # Create job from template i

29 March /31 CLIP: “Hello World” example From a Ganga CLIP session, a job that writes “Hello World” can be created, and then submitted to LCG, as follows app = Executable() app.exe = ‘/bin/echo’ app.env = {} app.args = [‘Hello World’ ] # Property values set above are in fact the defaults # for Executable application j = Job( application = app, backend = LCG() ) j.submit() # Check on job progress jobs # When job has completed, check the output j.peek( ‘stdout’ )

29 March /31 Using Ganga commands from a Linux shell Ganga includes scripts that can be used from a Linux shell (i.e. outside of CLIP) # Create a job for submitting Executable to LCG ganga make_job Executable LCG test.py [ Edit test.py to set Executable and/or LCG properties ] # Submit job ganga submit test.py # Query status, triggering output retrieval if job is completed, # but not recommended because of risk of time-outs for status queries ganga query # Kill job ganga kill id # Remove job from Ganga repository and workspace ganga remove id Given job name or id as returned by query, also have possibilities such as Same syntax can be used from inside CLIP, with no overheads for startup

29 March /31 Ganga plugins for ATLAS jobs Athena GangaObject IApplication IBackend IDatasetISplitterIMerger LCG ATLASCastorDataset DQ2Dataset ATLASDataset ATLASLocalDataset ATLASOutputDataset DQ2OutputDataset AthenaMC AthenaMCpyJY AthenaSplitterJob AthenaMCSplitterJob AthenaMCpyJTSplitterJob AthenaOutputMerger LSF Other Analysis Production Input data Output data Dataset in DQ2/DDM Files on local storage Old mc10 data in old LFC Older data on CASTOR at CERN Dataset in DQ2/DDM Files on local storage

29 March /31 Starting point for using Ganga to run ATLAS applications Need usual setup for running Athena For analysis: –Need steering package that defines the physics analysis This is any package where cmt/requirements defines all dependencies In the hands-on exercises, and for anyone who’s followed the analysis examples in the ATLAS Workbook, the steering package is UserAnalysis –Work from /run subdirectory of steering package For user-level production –Should download JobTransform archive to directory where Ganga is run –Archive used in hands-on exercises is: AtlasProduction_12_0_4_1_noarch.tar.gz AtlasProduction_12_0_4_1_noarch.tar.gz

29 March /31 Using Ganga’s athena script to submit analysis job to LCG From the Linux shell, job can be submitted to LCG using the syntax: ganga athena \ --inDS misalg_csc PythiaH130zz4l.recon.AOD.v \ --outputdata AnalysisSkeleton.aan.root \ --split 3 \ --maxevt 100 \ --lcg \ --ce ce102.cern.ch:2119/jobmanager-lcglsf-grid_2nh_atlas \ AnalysisSkeleton_topOptions.py Use Ganga’s athena script Input dataset Output data Split job into 3 subjobs Limit analysis to 100 events per subjob Submit to LCG Force use of particular compute element Job options Replace --lcg with --lsf, and omit --ce, to submit to LSF –Trivial switching between running locally and running on Grid Help available on options accepted by Ganga’s athena script ganga athena --help

29 March /31 Monitoring job progress and retrieving output To monitor job progress, you should start a Ganga CLIP or GUI session In CLIP, changes in the status of jobs/subjobs are buffered, and are printed when you hit return At any time, you can also explicitly request status information # print status information for all jobs jobs # Print status information for particular subjob print jobs[5].subjobs[27].status When a job completes, the Ganga monitoring loop takes care of storing the output, and registers it with DQ2 with a dataset name of the form user.username.ganga.jobid Output can be listed and retrieved using DQ2 client tools dq2_ls -f user.username.ganga.jobid dq2_get -r user.username.ganga.jobid

29 March /31 Running an analysis job from CLIP (1) Create application object, set job options and prepare tar file of user area –Other properties filled automatically, based on user setup app = Athena() app.application.option_file = ‘myOpts.py’ app.prepare( athena_compile = False ) Define the input dataset inData = DQ2Dataset() inData.dataset = ‘interestingDataset.AOD.v ’ inData.type = ‘DQ2_Local’ Define the output dataset outData = AthenaOutputDataset() outData.outputdata = ‘myOutput.root’

29 March /31 Running an analysis job from CLIP (2) Define splitter, merger and backend splitter = AthenaSplitterJob( numsubjobs = 2 ) merger = AthenaOutputMerger() backend = LCG( CE = ‘reliableCE’ ) Create job template from defined objects t = JobTemplate( name = ‘TestAnalysis’ ) t.application = app t.backend = backend t.inputdata = inData t.outputdata = outData t.splitter = splitter t.merger = merger

29 March /31 Running an analysis job from CLIP (3) Create job from the template and submit the job j = Job( t ) j.submit() Check job status jobs When job has completed, check standard outputs of subjobs, then retrieve and merge ROOT output files j.subjobs[0].peek( “stdout” ) j.subjobs[1].peek( “stdout” ) j.outputdata.retrieve() j.merge()

29 March /31 User-level production Event production is broken down into three steps: –evgen: generate particle kinematics –simul+digit: simulate particles passing through detector - RDO output –recon: event reconstruction - AOD, ESD, CBNT output With Ganga 4.3, submission of production jobs from Linux shell will be possible using Ganga’s athena script As CLIP example, consider generation of 30 events containing single electron with E T > 40 GeV –Same example used in hands-on exercises

29 March /31 Running user-level production from CLIP (1) Create application object, and set properties app = AthenaMC() app.atlas_release = ‘12.0.4’ app.transform_archive = ‘AtlasProduction_12_0_4_1_noarch.tar.gz’ app.production_name = ‘tutorial’ app.mode = ‘evgen’ app.evgen_job_option = ‘DC singlepart_e_Et40.py’ app.process_name = ‘single_e_Et40’ app.run_number = ‘000001’ app.firstevent = ‘1’ app.random_seed = ‘ ’ app.number_events_job = ‘30’ app.se_name = ‘NIKHEF’

29 March /31 Running user-level production from CLIP (2) Define the output dataset –The output is stored at the site specified by app.se_name –Naming convention explained in hands-on exercises Define LCG backend, with execution forced at a particular site backend = LCG() backend.CE = ‘tbn20.nikhef.nl:2119/jobmanager-pbs-atlas’ Create job template from defined objects t = JobTemplate( name = ‘TestGeneration’ ) t.application = app t.backend = backend t.outputdata = outData outData = DQ2OutputDataset() Create job from template and submit Job( t ).submit()

29 March /31 Ganga Graphical User Interface (GUI) GUI consists of central monitoring panel and dockable windows Essentially everything that can be done in CLIP can be done with the GUI –More details in presentation tomorrow Job details Logical Folders Scriptor Job Monitoring Log window Job builder

29 March /31 Conclusions Have given an overview of: –the ideas behind Ganga –getting started with Ganga, running a “Hello World” job –using Ganga to run ATLAS applications Have probably made it seem more complicated than it is in practice To see that Ganga is quite easy to use, you just have to try it –Chance for this, and more detailed explanations of the functionality, in the Ganga hands-on sessions tomorrow