Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC



Similar documents
High-Performance Computing

Linux für bwgrid. Sabine Richling, Heinz Kredel. Universitätsrechenzentrum Heidelberg Rechenzentrum Universität Mannheim. 27.

Parallel Processing using the LOTUS cluster

Installing and running COMSOL on a Linux cluster

The RWTH Compute Cluster Environment

Matlab on a Supercomputer

SLURM Workload Manager

Streamline Computing Linux Cluster User Training. ( Nottingham University)

Using the Yale HPC Clusters

Work Environment. David Tur HPC Expert. HPC Users Training September, 18th 2015

Miami University RedHawk Cluster Working with batch jobs on the Cluster

MATLAB Distributed Computing Server Installation Guide. R2012a

LSKA 2010 Survey Report Job Scheduler

Parallel Debugging with DDT

Parallel Computing with MATLAB

bwgrid Treff MA/HD Sabine Richling, Heinz Kredel Universitätsrechenzentrum Heidelberg Rechenzentrum Universität Mannheim 29.

Parallel Computing with Mathematica UVACSE Short Course

Using WestGrid. Patrick Mann, Manager, Technical Operations Jan.15, 2014

Running COMSOL in parallel

Grid Engine Users Guide p1 Edition

Using the Windows Cluster

Speeding up MATLAB and Simulink Applications

Cloud Computing through Virtualization and HPC technologies

:Introducing Star-P. The Open Platform for Parallel Application Development. Yoel Jacobsen E&M Computing LTD

Debugging and Profiling Lab. Carlos Rosales, Kent Milfeld and Yaakoub Y. El Kharma

Introduction to Matlab Distributed Computing Server (MDCS) Dan Mazur and Pier-Luc St-Onge December 1st, 2015

Program Grid and HPC5+ workshop

Microsoft Compute Clusters in High Performance Technical Computing. Björn Tromsdorf, HPC Product Manager, Microsoft Corporation

NEC HPC-Linux-Cluster

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

HPC Wales Skills Academy Course Catalogue 2015

High Performance Computing

Batch Scheduling and Resource Management

Grid Engine Basics. Table of Contents. Grid Engine Basics Version 1. (Formerly: Sun Grid Engine)

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

Hodor and Bran - Job Scheduling and PBS Scripts

MPI / ClusterTools Update and Plans

MFCF Grad Session 2015

Interoperability between Sun Grid Engine and the Windows Compute Cluster

The Assessment of Benchmarks Executed on Bare-Metal and Using Para-Virtualisation

Agenda. Using HPC Wales 2

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

SLURM: Resource Management and Job Scheduling Software. Advanced Computing Center for Research and Education

Using NeSI HPC Resources. NeSI Computational Science Team

Supercomputing on Windows. Microsoft (Thailand) Limited

MATLAB Distributed Computing Server System Administrator's Guide

MATLAB Distributed Computing Server System Administrator s Guide. R2013b

Microsoft Windows PowerShell v2 For Administrators

Introduction to Running Computations on the High Performance Clusters at the Center for Computational Research

ANSYS Remote Solve Manager User's Guide

Mitglied der Helmholtz-Gemeinschaft. System monitoring with LLview and the Parallel Tools Platform

User s Manual

Using the Yale HPC Clusters

Grid Scheduling Dictionary of Terms and Keywords

The Asterope compute cluster

SLURM: Resource Management and Job Scheduling Software. Advanced Computing Center for Research and Education

SSH Connections MACs the MAC XTerm application can be used to create an ssh connection, no utility is needed.

Using Google Compute Engine

OpenMP & MPI CISC 879. Tristan Vanderbruggen & John Cavazos Dept of Computer & Information Sciences University of Delaware

Introduction to HPC Workshop. Center for e-research

Job Scheduling with Moab Cluster Suite

GRID Computing: CAS Style

SGE Roll: Users Guide. Version Edition

Part I Courses Syllabus

Compute Cluster Server Lab 3: Debugging the parallel MPI programs in Microsoft Visual Studio 2005

locuz.com HPC App Portal V2.0 DATASHEET

Cloud Computing. Up until now

The XSEDE Global Federated File System (GFFS) - Breaking Down Barriers to Secure Resource Sharing

Overview of HPC Resources at Vanderbilt

MDM Multidomain Edition (Version 9.6.0) For Microsoft SQL Server Performance Tuning

HPC at IU Overview. Abhinav Thota Research Technologies Indiana University

Quick Tutorial for Portable Batch System (PBS)

Adaptive Resource Optimizer For Optimal High Performance Compute Resource Utilization

A High Performance Computing Scheduling and Resource Management Primer

HPC Cluster Decisions and ANSYS Configuration Best Practices. Diana Collier Lead Systems Support Specialist Houston UGM May 2014

Application Architectures

Introduction to parallel computing and UPPMAX

Getting Started with HPC

NYUAD HPC Center Running Jobs

High-Performance Reservoir Risk Assessment (Jacta Cluster)

Using Parallel Computing to Run Multiple Jobs

UMass High Performance Computing Center

Beyond Windows: Using the Linux Servers and the Grid

Bringing Big Data Modelling into the Hands of Domain Experts

An Introduction to High Performance Computing in the Department

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

Parallel Programming for Multi-Core, Distributed Systems, and GPUs Exercises

1Z Oracle Weblogic Server 11g: System Administration I. Version: Demo. Page <<1/7>>

Cloud Computing. Lectures 3 and 4 Grid Schedulers: Condor

Types Of Operating Systems

Introduction to Sun Grid Engine (SGE)

Introduction to SDSC systems and data analytics software packages "

Multicore Parallel Computing with OpenMP

HPC-Nutzer Informationsaustausch. The Workload Management System LSF

Final Report. Cluster Scheduling. Submitted by: Priti Lohani

Chapter 2: Getting Started

Parallel and Distributed Computing Programming Assignment 1

A Performance Data Storage and Analysis Tool

24/08/2004. Introductory User Guide

ABAQUS High Performance Computing Environment at Nokia

Transcription:

Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC

Goals of the session Overview of parallel MATLAB Why parallel MATLAB? Multiprocessing in MATLAB Parallel MATLAB using the Parallel Computing Toolbox (PCT) Running a serial job Running interactive parallel job Running a batch job on the OSC cluster

Parallel Computing Goals: Speed up computations by using multiple processors Utilize more memory than available on single machine How? Using MPI: Message Passing Interface, a library that is used to exchange data and control information between the processors. Used in distributed memory environments Using OpenMP: A set of compiler directives that is used to run threads in parallel in a shared memory environment Reality Parallel programming using C/C++/FORTRAN and MPI is hard Creating parallel code in C/FORTRAN and MPI takes a long time

Why Parallel MATLAB MATLAB is widely used for developing/prototyping algorithms The High Level Language and Integrated - Development/Visualization environment leads to productive code development By parallelizing MATLAB code Algorithm can be run with different/larger data sets Algorithm can be run with larger parameter sweeps Compute times may be reduced

Multiprocessing in MATLAB MATLAB R2011a supports implicit and explicit multi-processing Implicit multi-processing Built-in multithreading Speeds up many linear algebra routines, matrix operations Leverages multiple cores on processor Explicit multi-processing Parallel computing using the Parallel Computing Toolbox and MATLAB Distributed Computing Server Leverages multiple processors on clusters

Implicit Multiprocessing : Multithreading in MATLAB MATLAB runs computations on multiple threads on your machine No changes to MATLAB code required Users can change behavior via preferences Maximum gain in element-wise operations and BLAS routines

Explicit Multiprocessing : The Parallel Computing Toolbox Explicit multiprocessing is enabled through the use of the following two products The Parallel Computing Toolbox (PCT) MATLAB Distributed Computing Server (MDCS)

The Parallel Computing Toolbox Provides parallel constructs in the MATLAB language, such as parallel for loops, distributed arrays and message passing Enables rapid prototyping of parallel code through an interactive parallel MATLAB session Provides the ability to scale the problem by harnessing resources in a remote cluster

The Parallel Computing Toolbox Language enhancements include: Ability to create and use distributed arrays Over 150 parallel functions for use on distributed arrays cos, sin, log, find, isempty, etc. ScaLAPACK based parallel linear algebra routines svd, lu Global, collective operations such as global addition, reduction, etc. Explicit, fine grained parallelism via MPI functions

The Parallel Computing Toolbox The Parallel Computing Toolbox supports the following types of schedulers for job submission Local scheduler Can run up to 4 Workers simultaneously Useful for debugging parallel code locally Job Manager Supported Third-Party scheduler (PBS, LSF, SGE) Generic Scheduler Generic interface that allows use with a third-party scheduler Additionally the PCT supports the use of configurations Configurations are a convenient way to store scheduler parameters

MATLAB Distributed Computing Server - MDCS The MATLAB Distributed Computing Server enables scaling of parallel MATLAB code on clusters It includes a basic scheduler and also supports LSF, PBS and TORQUE

Setup Start interactive MATLAB session on AU-HPC mathlab * Note include Y flag in your ssh command to set X11 forwarding Start MATLAB in batch mode mathlab nodisplay Submit MATLAB job mathlab nodisplay <myjob.m> savemyjob.out &

LSF Running Matlab in batch To submit a batch Matlab job, first prepare a file with your Matlab commands, say program_file.m. Then issue the commands: bsub -q normal matlab -nodisplay -nojvm -nosplash -r program_file -logfile output_file.txt NB: if you intend to use java programs do not include the flag -nojvm. Note that the suffix ".m" is omitted from the command file name. This submits a batch job to the batch queue taking input from the file program_file.m, and placing text output in output_file.txt.

Sample LSF script Matlab Job #!/bin/bash bsub < matlab.lsf # enable your environment, which will use.bashrc configuration in your home directory #BSUB -L /bin/bash # the name of your job showing on the queue system #BSUB -J MatlabJob # the following BSUB line specify the queue that you will use, #BSUB -q normal # the system output and error message output, %J will show as your jobid #BSUB -o %J.out #BSUB -e %J.err #the CPU number that you will collect (Attention: each node has 2 CPU) #BSUB -n 1 #when job finish that you will get email notification #BSUB -u user@american.edu #BSUB -N # your matlab code matlab -nodisplay -r myplot #enter your working directory cd /home/username/matlab

Running on a cluster using a Generic Scheduler Creating a job job = createparalleljob(sched); set(job, 'MaximumNumberOfWokers', 4); set(job, 'MinimumNumberOfWokers', 4); Some important properties of jobs FileDependencies: List of user m-files that the job needs PathDependencies: List of directories to be added to the MATLAB path Output is retrieved using the function getalloutputarguments

Running on a cluster using a Generic Scheduler Creating tasks task = createparalleljob(job); set(task, 'CaptureCommandWindowOutput', 1); Some important properties of Tasks CommandWindowOutput Returns the messages printed to the screen Error Returns the error stack (if an error occurs on the Worker)

Running on a cluster using a Generic Scheduler Finally, the job is submitted using the command submit(job)