JUBE. A Flexible, Application- and Platform-Independent Environment for Benchmarking



Similar documents
Relations with ISV and Open Source. Stephane Requena GENCI

The PRACE Project Applications, Benchmarks and Prototypes. Dr. Peter Michielse (NCF, Netherlands)

Parallel Visualization of Petascale Simulation Results from GROMACS, NAMD and CP2K on IBM Blue Gene/P using VisIt Visualization Toolkit

Running applications on the Cray XC30 4/12/2015

SLURM Workload Manager

ADAM 5.5. System Requirements

NASA Workflow Tool. User Guide. September 29, 2010

Inca User-level Grid Monitoring

Visual Basic. murach's TRAINING & REFERENCE

Parallel I/O on JUQUEEN

Working with HPC and HTC Apps. Abhinav Thota Research Technologies Indiana University

PROGRAMMING FOR BIOLOGISTS. BIOL 6297 Monday, Wednesday 10 am -12 pm

"Charting the Course to Your Success!" MOC A Understanding and Administering Windows HPC Server Course Summary

JobScheduler Web Services Executing JobScheduler commands

HPC Wales Skills Academy Course Catalogue 2015

Submitting UITests at the Command Line

A Short Introduction to Writing Java Code. Zoltán Majó

Joomla! Override Plugin

High Performance Computing Facility Specifications, Policies and Usage. Supercomputer Project. Bibliotheca Alexandrina

Application Note: AN00141 xcore-xa - Application Development

PBS Tutorial. Fangrui Ma Universit of Nebraska-Lincoln. October 26th, 2007

CNR-INFM DEMOCRITOS and SISSA elab Trieste

SOFTWARE TESTING TRAINING COURSES CONTENTS

IDS 561 Big data analytics Assignment 1

Using SQL Developer. Copyright 2008, Oracle. All rights reserved.

Creating a DUO MFA Service in AWS

CatDV-StorNext Archive Additions: Installation and Configuration Guide

Automation Tools for UCS Sysadmins

Code Estimation Tools Directions for a Services Engagement

Lustre * Filesystem for Cloud and Hadoop *

HP Enterprise Integration module for SAP applications

Hadoop Tutorial. General Instructions

Log Analyzer Reference

Introduction to XML Applications

Automating Big Data Benchmarking for Different Architectures with ALOJA

D83167 Oracle Data Integrator 12c: Integration and Administration

Automate Your BI Administration to Save Millions with Command Manager and System Manager

Log Service Installation Instructions

Introduction to Big data. Why Big data? Case Studies. Introduction to Hadoop. Understanding Features of Hadoop. Hadoop Architecture.

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

Performance analysis of parallel applications on modern multithreaded processor architectures

Schedule WRF model executions in parallel computing environments using Python

Oracle Data Integrator: Administration and Development

EMC Documentum Composer

Kaltura Extension for IBM Connections Deployment Guide. Version: 1.0

Integrating SAP BusinessObjects with Hadoop. Using a multi-node Hadoop Cluster

INF-110. GPFS Installation

Tracking Network Changes Using Change Audit

Course Code NCS2013: SharePoint 2013 No-code Solutions for Office 365 and On-premises

Parallel Processing using the LOTUS cluster

Wind River. Intelligent Device Platform XT EMS Profile EMS DEVICE MANAGEMENT USER'S GUIDE WIND RIVER 1.0

Microsoft Windows PowerShell v2 For Administrators

LSKA 2010 Survey Report Job Scheduler

ANSYS Remote Solve Manager User's Guide

Universal Event Monitor for SOA Reference Guide

RPC and TI-RPC Test Suite Test Plan Document

The Maui High Performance Computing Center Department of Defense Supercomputing Resource Center (MHPCC DSRC) Hadoop Implementation on Riptide - -

Living in a mixed world -Interoperability in Windows HPC Server Steven Newhouse stevenn@microsoft.com

Getting Started with HPC

Getting Started with SandStorm NoSQL Benchmark

ALERT installation setup

Programming Hadoop 5-day, instructor-led BD-106. MapReduce Overview. Hadoop Overview

Fundamentals Curriculum HAWQ

EMC DOCUMENTUM xplore 1.1 DISASTER RECOVERY USING EMC NETWORKER

Setting up the Oracle Warehouse Builder Project. Topics. Overview. Purpose

Scalable Services for Digital Preservation

irods and Metadata survey Version 0.1 Date March Abhijeet Kodgire 25th

Advanced Techniques with Newton. Gerald Ragghianti Advanced Newton workshop Sept. 22, 2011

Automatic promotion and versioning with Oracle Data Integrator 12c

Google App Engine f r o r J av a a v a (G ( AE A / E J / )

COURSE CONTENT Big Data and Hadoop Training

Mastering CMake. Sixth Edition. Bill Martin & Hoffman. Ken. Andy Cedilnik, David Cole, Marcus Hanwell, Julien Jomier, Brad King, Robert Maynard,

NaviCell Data Visualization Python API

Installation Guide for Basler pylon 2.3.x for Linux

What Does Tequila Have to Do with Managing Macs? Using Open Source Tools to Manage Mac OS in the Enterprise!

Secure Messaging Server Console... 2

A Performance Data Storage and Analysis Tool

CUICAU: Cisco Unified Intelligence Center for Advanced Users v1.x

Petascale Software Challenges. Piyush Chaudhary High Performance Computing

Linux Cluster Computing An Administrator s Perspective

Tutorial: Packaging your server build

Google App Engine. Guido van Rossum Stanford EE380 Colloquium, Nov 5, 2008

VWVCVIM5.5 VMware vcenter Configuration Manager for Virtual Infrastructure Management [v5.5]

Table of Contents. The RCS MINI HOWTO

SimbaEngine SDK 9.4. Build a C++ ODBC Driver for SQL-Based Data Sources in 5 Days. Last Revised: October Simba Technologies Inc.

Chase Wu New Jersey Ins0tute of Technology

Big Data Course Highlights

Scientific and Technical Applications as a Service in the Cloud

Technical Guide to ULGrid

OpenMake Dynamic DevOps Suite 7.5 Road Map. Feature review for Mojo, Meister, CloudBuilder and Deploy+

Inca User-level Grid Monitoring

JuRoPA. Jülich Research on Petaflop Architecture. One Year on. Hugo R. Falter, COO Lee J Porter, Engineering

StreamServe Persuasion SP5 Document Broker Plus

Scalable System Monitoring

Kuali Security Request Installation Guide

1. GridGain In-Memory Accelerator For Hadoop. 2. Hadoop Installation. 2.1 Hadoop 1.x Installation

SIPAC. Signals and Data Identification, Processing, Analysis, and Classification

PBSWEB: A WEB-BASED INTERFACE TO THE PORTABLE BATCH SYSTEM

FileMaker Server 12. Custom Web Publishing with PHP

Transcription:

JUBE A Flexible, Application- and Platform-Independent Environment for Benchmarking Sebastian Lührs s.luehrs@fz-juelich.de Jülich Supercomputing Centre Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015

What is JUBE? Environment to run, monitor and analyse benchmarks (command line based) Motivation: objective comparison of computer architectures Use cases: procurements, monitoring the effects of system and configuration changes benchmark JUBE configuration opt #cpus time[s] O1 2048 35.13 O1 4096 16.14 O1 8192 9.32 O3 2048 29.00 O3 4096 15.00 O3 8192 7.60 Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 2

JUBE history Development started in 2004 JUBE version 1 Perl based Used in many European projects like DEISA and PRACE 2014 complete new release: JUBE version 2 Python based New, more flexible input file layout New command line options Current version: 2.0.2 not part of this presentation! JUBE 1 file format JUBE 2 file format! Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 3

Why JUBE? Alternatives: Manual benchmarking: Easy to use Time-consuming Very error-prone Benchmark specific script solution: Optimized Changes can be time-consuming Portability problems Why should I spend time writing additional configuration files? Was the last run for optimization level three? Can you run your benchmark every day, using ten different parameterizations? Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 4

Main concepts Easy parameter space creation <parameter name="opt">o1,o2</> <parameter name="tasks">1024,2048,4096</> configuration Substitution of placeholders compile step O1 O2 execution step 1024 2048 4096 1024 2048 4096 #tasks# #tasks# 1024 #parameter# value 1024 #parameter# value Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 5

XML input file format XML must be well formed: Only one root element: <jube> <a><b></a></b> not allowed Every tag must be closed (<a></a> or <a/>) <a attr1="" attr1=""/> not allowed <a attr= /> not allowed (missing "") Normal XML comment syntax can be used: <!-- --> JUBE tags can be validated using available DTD, schema, or RELAX NG file Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 6

Workflow <jube> <benchmark name="bench" outpath="./benchmark_runs"> <parameterset name="compileset"> <parameter name="execname">my_exe</parameter> <parameter name="cppflagslist"> -O1,-O2 </parameter> </parameterset> <fileset name="sources"> <copy>src/*</copy> </fileset> <substituteset name="compilesub"> <iofile in="makefile.in" out="makefile" /> <sub source="#progname#" dest="$execname" /> </substituteset> compile execname = my_exe cppflagslist = O1 Source Makefile.in Makefile execute compile my_exe execname = my_exe cppflagslist = O2 Source Makefile.in Makefile compile my_exe <step name="compile"> <use>compileset</use> <use>sources</use> <use>compilesub</use> <do>make OPT=$cppflagslist</do> </step> <step name="execute" depend="compile"> analyse and result creation Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 7

benchmark_runs Directory structure benchmark.xml outpath 000000_compile 000001_compile 000002_execute done work stdout stderr 000000 configuration.xml 000001 workpackages.xml analyse.xml *.log result directory file Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 8

Command line access 1. Start a new benchmark run jube run benchmark.xml 2. Continue an existing benchmark run jube continue benchmark_dir [--id <id>] 3. Analyse the benchmark data jube analyse benchmark_dir [--id <id>] 4. Create and show result representation jube result benchmark_dir [--id <id>] Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 9

Help?! 1. Online documentation and tutorial 2. Info mode www.fz-juelich.de/jsc/jube jube info benchmark_dir [--id <id>] [--step <stepname>] 3. Command line accessible glossary 4. Logs jube help <keyword> jube log benchmark_dir [--id <id>] 5. Debug mode jube --debug run continue analyse result Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 10

Platform independent benchmarking platform 1 folder benchmark.xml export JUBE_INCLUDE_PATH= jube run --include_path <include-path></include-path> select platform platform.xml job.submit.in <parameterset name="" init_with="platform.xml"></> <step > <use from="platform.xml"></> </step> <include from="platform.xml" /> platform.xml platform 2 folder job.submit.in Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 11

Example JUBE Linktest implementation <?xml version="1.0" encoding="utf-8"?> <jube> <benchmark name="linktest" outpath="benchmark_runs"> <comment>a linktest JUBE benchmark</comment> </benchmark> </jube> Linktest: Parallel ping-pong test between all possible MPI connections of a machine www.fz-juelich.de/jsc/linktest Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 12

Example JUBE Linktest implementation <?xml version="1.0" encoding="utf-8"?> <jube> <benchmark name="linktest" outpath="benchmark_runs"> <comment>a linktest JUBE benchmark</comment> compile <!-- ============================ compile ============================= --> <fileset name="source"> <link>fzjlinktest-1.1p5.tar.gz</link> <prepare>tar -xf fzjlinktest-1.1p5.tar.gz</prepare> </fileset> link files to work directory load modules and run make <step name="compile" export="true"> <use>source</use> <do>module load intel-para</do> <do>module load SIONlib</do> <do work_dir="fzjlinktest/src">make -f Makefile_LINUX SIONLIB_INST=$$EBROOTSIONLIB</do> </step> Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 13

Example JUBE Linktest implementation <benchmark name="linktest" outpath="benchmark_runs"> <!-- ============================ execute ============================= --> <parameterset name="systemparameter" init_with="platform.xml"> <parameter name="nodes" type="int">1,2,4</parameter> <parameter name="executable">mpilinktest</parameter> <parameter name="mail">s.luehrs@fz-juelich.de</parameter> <parameter name="taskspernode" type="int">28</parameter> <parameter name="timelimit">00:15:00</parameter> <parameter name="args_exec">-k $msg_size</parameter> </parameterset> <parameterset name="linktestparameter"> <parameter name="msg_size" type="int">128,1024,10240</parameter> </parameterset> <fileset name="binaries"> <link rel_path_ref="internal" directory="compile/fzjlinktest/src">mpilinktest,pingponganalysis</link> </fileset> <step name="execute" depend="compile"> <use from="platform.xml">executeset</use> <use from="platform.xml">executesub</use> <use from="platform.xml">jobfiles</use> <use>systemparameter</use> <use>binaries</use> submit job <use>linktestparameter</use> <do done_file="$done_file">$submit $submit_script</do> </step> execute platform specific parameters linktest specific parameters create internal file link Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 14

Example JUBE Linktest implementation <benchmark name="linktest" outpath="benchmark_runs"> postprocess <!-- ========================== postprocess =========================== --> <step name="postprocess" depend="compile,execute"> <use>binaries</use> <do>./pingponganalysis -p execute/pingpong_results_bin.sion</do> </step> create report Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 15

Example JUBE Linktest implementation <benchmark name="linktest" outpath="benchmark_runs"> <!-- ============================ analyse ============================= --> <patternset name="pattern"> <pattern name="min_time" unit="us">result: Min Time Stest:\s*$jube_pat_fp</pattern> <pattern name="max_time" unit="us">result: Max Time Stest:\s*$jube_pat_fp</pattern> <pattern name="avg_time" unit="us">result: Avg Time Stest:\s*$jube_pat_fp</pattern> </patternset> <analyzer name="analyse"> <use>pattern</use> <analyse step="execute"><file>stdout</file></analyse> </analyzer> <result> <use>analyse</use> <table name="result" style="pretty" sort="nodes,msg_size"> <column>nodes</column> <column title="msg_size[kb]">msg_size</column> <column format=".3f">min_time</column> <column format=".3f">max_time</column> <column format=".3f">avg_time</column> </table> </result> regular expressions files to analyse create a result table analyse Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 16

Example JUBE Linktest implementation Result: nodes msg_size[kb] min_time[us] max_time[us] avg_time[us] ------+--------------+--------------+--------------+------------- 1 128 30.319 35.842 32.858 1 1024 227.849 261.505 244.477 1 10240 230.352 315.825 243.127 2 128 27.339 33.339 30.144 2 1024 174.165 179.529 176.697 2 10240 174.522 180.999 177.264 4 128 26.504 33.816 29.742 4 1024 173.330 181.675 176.864 4 10240 172.814 181.834 176.962 Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 17

Available JUBE (v. 1) benchmarks DEISA benchmark suite: (edeisa, Deisa2) GADGET, Ramses, Fenfloss, IFS, NEMO, NAMD, IQCS, CPMD, Quantum_ESPRESSO, GENE, PEPC, BQCD, SU3_Ahiggs PABS: PRACE application benchmark suite (PRACE-PP/1IP) Code_Saturne, CP2K, CPMD, EUTERPE, GADGET, GROMACS, NAMD, NEMO, NS3D, QCD, Quantum_ESPRESSO, WRF, ALYA, AVBP, ELMER, GPAW, HELIUM, OCTOPUS, PEPC, SPECFEM3D, TRIPOLI_4 Synthetic codes: bonnie, euroben, hpcc, ior, psnap, selfish, skampi, smb, stream2 PUABS: PRACE Unified Application benchmark suite (PRACE-2IP) ALYA, CP2K, Code_Saturne, GADGET, GENE, GPAW, GROMACS, NAMD, NEMO, QCD, Quantum_ESPRESSO, SPECFEM3D Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 18

Available JUBE (v. 2) benchmarks mdtest: Metadata test benchmark IOR: (InterleavedOrRandom) I/O benchmark HPL: High-Performance Linpack Benchmark LinkTest: Parallel MPI PingPong Test Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 19

Where to start? Website (download and tutorials): Versions: www.fz-juelich.de/jsc/jube 1.x older JUBE release, Perl based 2.x new release, Python based 1.x to 2.x converter included in JUBE v. 2 Prerequisites: Installation: OS: Linux Python 2.6*, Python 2.7, Python 3.2 (or a more recent version) * argparse module needed python setup.py --user install into $HOME/.local Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 20

Development and upcoming features Reusing steps E.g. reuse existing binaries More flexible parameter creation Create new parameter while running the benchmark High-level job submission API Instead of generic <do> Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 21

Contact jube.jsc@fz-juelich.de s.luehrs@fz-juelich.de Thank you for your attention! Cy-Tera/LinkSCEEM HPC Administrator Workshop, 19-21 January 2015, JUBE, S. Lührs 22