Parallel computing on the Grid

Similar documents
Future of Grid parallel exploitation

Cluster Nazionale CSN4

Roberto Alfieri. Parma University & INFN Italy

Multi-thread and Mpi usage in GRID Roberto Alfieri - Parma University & INFN, Gr.Coll. di Parma

A unified user experience for MPI jobs in EMI

Parallel Job Support in the Spanish NGI! Enol Fernández del Cas/llo Ins/tuto de Física de Cantabria (IFCA) Spain

Parallel Applications on Distributed Memory Systems. Le Yan HPC User LSU

PoS(EGICF12-EMITC2)057

Kohinoor queuing document

MPI SUPPORT ON THE GRID. Kiril Dichev, Sven Stork, Rainer Keller. Enol Fernández

How to use computing resources at Grid

Practical Introduction to

International Collaboration to Extend and Advance Grid Education. glite WMS Workload Management System

Parallel Computing in EGI

Performance comparison between a massive SMP machine and clusters

MPI Applications with the Grid Engine

Hybrid MPI/OpenMP parallelization. Recall: MPI uses processes for parallelism. Each process has its own, separate address space.

Architecture of the WMS

OPEN MP and MPI on Kingspeak chpc cluster

Our new HPC-Cluster An overview

Advanced Job Submission on the Grid

Content. MPIRUN Command Environment Variables LoadLeveler SUBMIT Command IBM Simple Scheduler. IBM PSSC Montpellier Customer Center

Cerebro Quick Start Guide

glite Advanced Job Management

30 Nov Dec Advanced School in High Performance and GRID Computing Concepts and Applications, ICTP, Trieste, Italy

Running applications on the Cray XC30

Advanced Message-Passing Interface (MPI)

Parallelism. Wolfgang Kastaun. May 9, 2008

Installation and Test of Molecular Dynamics Simulation Packages on SGI Altix and Hydra-Cluster at JKU Linz

n N c CIni.o ewsrg.au

Introduction to Parallel Programming with MPI

Introduction to CINECA Computer Environment

Introduction to Unix Environment: modules, job scripts, PBS. N. Spallanzani (CINECA)

MPICH User s Guide Version Mathematics and Computer Science Division Argonne National Laboratory

Hybrid Model Parallel Programs

A Login Shell interface for INFN-GRID

GRID Testing and Profiling. November 2017

Domain Decomposition: Computational Fluid Dynamics

Problemi di schedulazione distribuita su Grid

Operating two InfiniBand grid clusters over 28 km distance

Batch environment PBS (Running applications on the Cray XC30) 1/18/2016

SGE Roll: Users Guide. Version Edition

The glite middleware. Ariel Garcia KIT

Getting computing into the classroom: building a cluster

UL HPC Monitoring in practice: why, what, how, where to look

Multicore Performance and Tools. Part 1: Topology, affinity, clock speed

AGATA Analysis on the GRID

Cluster Clonetroop: HowTo 2014

: A new version of Supercomputing or life after the end of the Moore s Law

Computing with the Moore Cluster

CUDA GPGPU Workshop 2012

Grid Scheduling Architectures with Globus

UAntwerpen, 24 June 2016

CALMIP : HIGH PERFORMANCE COMPUTING

Grid Examples. Steve Gallo Center for Computational Research University at Buffalo

HPC Issues for DFT Calculations. Adrian Jackson EPCC

Guillimin HPC Users Meeting March 17, 2016

Designing High Performance Communication Middleware with Emerging Multi-core Architectures

Ambiente CINECA: moduli, job scripts, PBS. A. Grottesi (CINECA)

MAKING CONTAINERS EASIER WITH HPC CONTAINER MAKER. Scott McMillan September 2018

HPC Middle East. KFUPM HPC Workshop April Mohamed Mekias HPC Solutions Consultant. Agenda

Batch Systems & Parallel Application Launchers Running your jobs on an HPC machine

Message Passing Interface (MPI) on Intel Xeon Phi coprocessor

The RWTH Compute Cluster Environment

Gergely Sipos MTA SZTAKI

Towards Exascale: Leveraging InfiniBand to accelerate the performance and scalability of Slurm jobstart.

Tutorial on MPI: part I

Advanced Job Launching. mapping applications to hardware

MPI History. MPI versions MPI-2 MPICH2

Practical Introduction to Message-Passing Interface (MPI)

The GPU-Cluster. Sandra Wienke Rechen- und Kommunikationszentrum (RZ) Fotos: Christian Iwainsky

Practical Introduction to Message-Passing Interface (MPI)

MIC Lab Parallel Computing on Stampede

NUMA Control for Hybrid Applications. Hang Liu TACC February 7 th, 2011

SPGrid Efforts in Italy

Research on the Implementation of MPI on Multicore Architectures

Performance Impact of Resource Contention in Multicore Systems

Shell Scripting. With Applications to HPC. Edmund Sumbar Copyright 2007 University of Alberta. All rights reserved

Quick Start Guide. by Burak Himmetoglu. Supercomputing Consultant. Enterprise Technology Services & Center for Scientific Computing

SCALABLE HYBRID PROTOTYPE

Installing and running COMSOL 4.3a on a Linux cluster COMSOL. All rights reserved.

Toward Improved Support for Loosely Coupled Large Scale Simulation Workflows. Swen Boehm Wael Elwasif Thomas Naughton, Geoffroy R.

Running LAMMPS on CC servers at IITM

COSC 6385 Computer Architecture - Multi Processor Systems

No Time to Read This Book?

Cluster Computing. Resource and Job Management for HPC 16/08/2010 SC-CAMP. ( SC-CAMP) Cluster Computing 16/08/ / 50

RWTH GPU-Cluster. Sandra Wienke March Rechen- und Kommunikationszentrum (RZ) Fotos: Christian Iwainsky

CCS HPC. Interconnection Network. PC MPP (Massively Parallel Processor) MPP IBM

CSinParallel Workshop. OnRamp: An Interactive Learning Portal for Parallel Computing Environments

NovoalignMPI User Guide

Parallel Computing at DESY Zeuthen. Introduction to Parallel Computing at DESY Zeuthen and the new cluster machines

Writing MPI Programs for Odyssey. Teresa Kaltz, PhD Research Computing

Centre de Calcul de l Institut National de Physique Nucléaire et de Physique des Particules. Singularity overview. Vanessa HAMAR

HPCC - Hrothgar Getting Started User Guide Gromacs

30 Nov Dec Advanced School in High Performance and GRID Computing Concepts and Applications, ICTP, Trieste, Italy

glite Middleware Usage

Lab: Hybrid Programming and NUMA Control

Grid Compute Resources and Job Management

NovoalignMPI User Guide

Why you should care about hardware locality and how.

Transcription:

arallel computing on the Grid and application porting examples Roberto Alfieri - arma University & INFN Italy Comput-er.it Meeting - arma 21/06/2011 1

Current MI support in Grid (glite middleware) Issue Solution Description Multiple CU request JDL file CUnumber=4 Multiple MI version/flavour support Get the MI machinefile from the job manager mpi-start tool mpi-start tool openmpi mpich mpich2 Automatic management (BS LSF SGE) Files distribution among nodes mpi-start tool Automatic management (home shared not shared) CUnumber=4; Executable= "mpi-start"; Arguments= my-mpi-prog OENMI"; InputSandbox="my-mpi-prog";. 2

MI-start MpiStart (developed by HLRS Stuttgart) is a set of scripts that ease the execution of MI programs by using a unique and stable interface to the middleware. The adoption of MpiStart in Grid comes from the EGEE MI-WG recommendations http://www.grid.ie/mpi/wiki/ Mpi-start frameworks: 1) Batch scheduler - BS, LSF, SGE,.. 2) MI implementations - openmi, MpiCh2,.. 3) Workflow control - Files distribution (if needed) - user's pre/post execution scripts Mpi-start maintainer web page: https://devel.ifca.es/mpi-start 4/13/2011 arallel computing on the Grid CCR-InfnGrid Workshop 2011 3 3

Memory architecture on multicore processors In modern multicore processors the memory architecture is NUMA - Cpu/memory affinity is the ability to bind a process to a specific CU/memory bank - 1 2 3 p p p p p 1 3 2 Measured network performance (using NetIE): Comm Type Latency MAX Bandw. 1 Intra-socket 640 ns 14 GBytes/s 2 Intra-board 820 ns 12 GBytes/s 3 infiniband 3300 ns 11 GBytes/s Memory performance (peak): Memory Type Latency MAX Bandw. L3 cache 35 ns DDR3 50 ns 32 GBytes/s Numa (HT or QI) 90 ns 11 GBytes/s 4 4

Forthcoming MI support (EMI middleware) Issue Solution Description Multiple CU request with granularity selection JDL file New features WholeNodes=true HostNumber=2 SMgranularity=8 openm support Mpi-start MI_USE_OM=1 pnode pcore psocket CU Affinity support Mpi-start MI_USE_AFFINITY=1 #CUnumber=4; Executable= "mpi-start"; Arguments= -t openmpi -pcore -d MI_USE_OM=1 -- my-prog"; InputSandbox="my-prog"; Wholenodes=true; HostNumber=2; SMGranularity=8; 5

arallel job examples 1 MI rank per node Executable= "mpi-start"; Arguments= -t openmpi -- my-mpi-prog"; InputSandbox="my-mpi-prog"; CUnumber=2; SMGranularity=1; 2 whole nodes, 1 MI rank per core Executable= "mpi-start"; Arguments= -t openmpi -- my-mpi-prog"; InputSandbox="my-mpi-prog"; Wholenodes=true; HostNumber=2; SMGranularity=8; Multi-thread job Executable= "my-openmp-prog"; Arguments= "; InputSandbox="my-openmp-prog"; Wholenodes=true; HostNumber=1; SMGranularity=8; 1 MI rank per socket, 4 threads per MI rank Executable= "mpi-start"; Arguments= -t openmpi d MI_USE_OENM=1 d MI_USE_AFFINITY=1 psocket -- my-prog"; InputSandbox="my-prog"; Wholenodes=true; HostNumber=2; SMGranularity=8;

arallel scientific applications Widely used application examples: Name Description MI Multi thread Einstein tk relativistic astrophysics C/C++/F90 YES YES NO Q-Espresso electronic structure F90 YES experimental with openmp GU Beta (May2011) Namd molecular dynamics C++ YES YES YES Chroma lattice field theory C++ YES NO YES Gromacs molecular dynamics C YES since v.4.5 with pthreads YES (Aug 2010) Since the INFN-ARMA grid parallel cluster (8 WNs 8 cores each, BS, openmi) supports a preliminary version of the new JDL syntax (WholeNodes attributes) and of the new mpi-start tool (openm and affinity support), it has been possible to start porting on the grid some widely used parallel applications. 7

orting example: Quantum Espresso QUANTUM ESRESSO http://www.quantum-espresso.org/ is an integrated suite of computer codes for electronic-structure calculations and materials modeling. The maintenance and further development is promoted by the DEMOCRITOS National Simulation Center of IOM-CNR under the terms of the GNU General ublic License. arallel execution: In Quantum Espresso several parallelization levels are implemented with MI. Typical execution command on C clusters: mpirun -np 16 $BINDIR/pw.x < file.in >file.out Explicit OpenM is a very recent addition, still at an experimental stage. For execution using OpenM on N threads: env OM_NUM_THREADS=N $BINDIR/pw.x < file.in > file.out Hybrid parallelization (MI/openM) should be executed carefully to prevent conflicts: env OM_NUM_THREADS=N mpirun -np 8 $BINDIR/pw.x < file.in > file.out 8

espresso.jdl Executable = "espresso.sh"; StdOutput = "std.out"; StdError = "std.err"; InputSandbox = {"espresso.sh, file.in }; OutputSandbox = {"std.err","std.out, file.out }; espresso.sh Running QE on the Grid WholeNodes=true HostNumber=2 Granularity selection SMGranularity=8 #Requirements=(other.GlueCEUniqueID=="cream-ce.pr.infn.it:8443/cream-pbs-parallel"); #!/bin/bash #install wget http://qe-forge.org/frs/download.php/159/espresso-4.3.1.tar.gz tar xzvf espresso-4.3.1.tar.gz cd $ESRESSO/espresso-4.3.1./configure #-enable-openmp make all # or whatever you need #execute $W=$ESRESSO/espresso-4.3.1/bin/pw.x mpi-start -t openmpi -psoket -d MI_USE_OM=1 -d MI_USE_AFFINITY=1 -- $W < file.in > file.out flavour MI rocess/thread distribution 9

orting example: Einstein toolkit Eintstein toolkit http://einsteintoolkit.org/ is an open software for relativistic astrophysics with mixed MI and openm parallelization. Evolution of a stable general relativistic TOV-Star. Hydro-dynamical Simulation of a perfect fluid coupled to the full Einstein Equations (dynamical space-time) on a 3-dimensional grid with 5-level of refinement spanning an octant of radius 177 km with a maximum resolution within the star of 740 m. Newly support mpi-start has adaptive way to mix openm and MI process. The best performance depends on the Hardware characteristic of the node: MI M Time (s) mpi-start -pcore... 8 1 760 mpi-start -psocket 2 4 730 mpi-start -pnode 1 8 922 Thanks to R. De ietri (arma Univ.) 10

orting example: NAMD NAMD http://www.ks.uiuc.edu/research/namd/ is a parallel molecular dynamics code designed for high-performance simulation of large biomolecular systems. arallel execution: NAMD uses the Charm++ communications layer to launch namd2 processes. SM builds of Charm++ can be used with multiple threads on a single node or across the network. Typical parallel execution command: charmrun namd2 +p16 +ppn 8 <configfile> In case of MI-based SM builds: mpiexec np 16 namd2 +ppn 8 <configfile> NAMD may use specific syntax to start parallel executions, so a customization of the execution script is needed to adapt this application in the Grid environment. 11

namd.jdl Running parallel NAMD on the Grid Executable = namd.sh"; InputSandbox = { namd.sh, NAMD_2.8_Source.tar.gz, configfile }; WholeNodes=true HostNumber=2 SMGranularity=8 namd.sh #!/bin/bash #install tar xzf NAMD_2.8_Source.tar.gz make #execute set NODES = `cat $BS_HOSTFILE` set NODELIST = namd2.nodelist echo group main >! $NODELIST foreach node ( $nodes ) echo host $node >> $NODELIST end @ NUMROCS = 2 * $#NODES charmrun namd2 +p$numrocs ++nodelist $NODELIST <configfile> 12

Thank you for your attention! 13