• No results found

The Uintah Framework: A Unified Heterogeneous Task Scheduling and Runtime System

N/A
N/A
Protected

Academic year: 2021

Share "The Uintah Framework: A Unified Heterogeneous Task Scheduling and Runtime System"

Copied!
17
0
0

Loading.... (view fulltext now)

Full text

(1)

The Uintah Framework

:

A Unified Heterogeneous Task

Scheduling and Runtime System

Qingyu Meng, Alan Humphrey,

Martin Berzins

DOE for funding the CSAFE project (97-10), DOE NETL, DOE NNSA NSF for funding via SDCI and PetaApps

Thanks to: John Schmidt and J. Davison de St. Germain, SCI Institute Justin Luitjens and Steve Parker, NVIDIA

(2)

Current and Past Uintah Applications

Shaped Charges Fires Explosions Foam Compaction Angiogenesis Sandstone Compaction CPU pins Coal Boiler Virtual Soldier Gas mixing

(3)

Uintah Data Parallelism

Structured Grid(Flows) +

Particles System(Solids)

Patch-based Domain

Decomposition for Parallel

Processing

Adaptive Mesh Refinement

Dynamic Load Balancing

Profiling + Forecasting Model Parallel Space Filling Curves Data Migration

Uintah uses both data and task parallelism

Gird and Patches (Physical Domain)

(4)

Uintah Task Parallelism

and Uintah Task Graph

Cores

Patch-based domain decomposition

tasks on patch

User defines Uintah Tasks:

Serial code (call back functions)

Input and output variables

Distributed: only creates tasks on local patches

Framework analyzes task dependencies and creates TG

Automatic MPI message generation

Dynamic Task Execution (Data Driven Overlap)

Task Graph

(5)

Uintah Runtime System:

How Uintah Runs Tasks

Memory Manager: Uintah Data Warehouse (DW)

Variable dictionary (hashed map from: Variable

Name, Patch ID, Material ID keys to memory)

Provide interfaces for tasks to

– Allocate variables

– Put variables into DW

– Get variables from DW

Automatic Scrubbing (garbage collection)

Checkpointing & Restart (data archiver)

Task Manager: Uintah schedulers

Decides when and where to run tasks

Decides when to process MPI

(6)

Thread/MPI Scheduler (De-centralized)

Memory saving: reduce ghost copies and metadata Work stealing inside node: all threads directly pull

tasks from task queues, no on-node MPI

Full Overlapping: All threads process MPI

sends/receives and execute tasks

Use lock-free data structure (avoid locking overhead)

Running Task Network Data Warehouse (variables) PUT GET Running Task Running Task completed task Task Queues satisfied task completed task Threads Shared Data Ready task sends receives Task Graph PUT GET MPI Data ready

(7)

Scalability Improvement

12 24 48 96 192 384 768 1.5K 3K 6K 12K 24K 49K 98K 100

Mean Time Per Timestep (s)

Cores

AMR MPMICE: Scaling

Strong Weak

16 32 64 128 256 512 1K 2K 4K 8K 16K 32K 64K 128K256K 100

101

Mean Time Per Timestep (s)

Cores

AMR MPMICE: Scaling

Strong Weak

Original Dynamic MPI-only Scheduler De-centralized MPI/Thread Hybrid Scheduler

(with Lock-free Data Warehouse)

• Achieve much better CPU Scalability

• 95% weak scaling efficiency on 256K cores (Jaguar XK6) • Use GPUs to accelerate Uintah Components

(8)

Generated by Google profiling tool, visualized by Kcachegrind

First step to GPU

1

1 2

2

Profile & find most time consuming task Port task’s serial CPU code to GPU

Call CUDA API inside task code Framework unaware of GPU(s)

Result: ~2x speedup (stencil code)

(9)

Uintah GPU Task Management

Framework manages all CUDA data movement (NOT inside task)

Use Asynchronous API

Automatically generate CUDA

stream for each dependency

Concurrently execute kernels

and memcopies

Prefetching data before task

kernel execute

Multi-GPU support

Two call back functions for both CPU version and GPU version:

Compatible for non-GPU nodes

hostComputes hostRequires existing host memory devComputes devRequires

Pin this memory with

cudaHostRegister()

Page locked buffer

cudaMemcpyAsync(H2D)

computation

cudaMemcpyAsync(D2H)

Free pinned host memory

Result back on host

Call-back executed here (kernel run) Component requests D2H copy here 1 2 3 5 6 4

Stages of GPU task in Uintah runtime

Data Transfer Kernel Execution Data TransferKernel Execution

Normal Page-locked Memory

GPU Task GPU Task

(10)

Multistage Task Queues

Architecture

Fully Overlap computation with

(11)

Unified Heterogeneous Scheduler & Runtime

Running CPU Task

Network Data Warehouse (variables) PUT GET

Running CPU Task Running CPU Task

CPU Task Queues

Internal ready tasks

CPU Threads Shared Scheduler Objects (host MEM) MPI Data Ready MPI sends MPI recvs Task Graph PUT GET GPU Data Warehouse H2D stream D2H stream

Running GPU Task

GPU Task Queues

Running GPU Task PUTGET

complete d task s stream events GPU Kernels GPU-enabled tasks ready tasks GPU ready tasks

(12)

GPU RMCRT Speedup Results

(Multi-Node)

All CPU cores vs Single GPU

Keeneland

Initial Delivery

System

Nodes CPU(sec) CPU+GPU

(sec) Speedup (x) 1 319.769 8.49714 38 X 2 163.773 7.68571 21X 4 70.0943 4.80571 14X 8 39.5686 2.62857 15X 16 20.2414 3.52857 6X 32 18.8043 2.73857 6X 64 9.11571 2.95714 3X

CPU Core – (2) Intel Xeon 6-core X5660 (Westmere) @2.8GHz GPU – (1) Nvidia M2090

* GPU implementation quickly runs out of work, scaling breaks down

(13)

Scaling Comparisons

Uintah strong scaling results when using:

MPI-only

Multi-threaded MPI

Multi-threaded MPI w/ GPU

Two Problems:

AMR MPMICE

Nearest neighbors communication

3.62 billion particles

GPU-enabled ray tracer

All-to-all communication

100 rays per cell 1283 cells

Uintah Scaling Overview

• MPI only AMR MPMICE: N=6144 CPU cores; Largest = 98K CPU cores • Thread/MPI AMR MPMICE: N=8192 CPU cores; Largest=256K CPU cores • Thread/MPI RayTracing: N=16 CPU cores; Largest=1024 CPU cores

(14)

Future Work

Scheduler – Infrastructure

GPU affinity for multi socket/GPU nodes

Support Intel MIC (Xeon Phi) offload-mode

PETSc GPU interface utilization

Mechanism to dynamically determine

whether to run GPU or CPU version task

Optimize GPU codes for Nvidia Kepler

CUDA 5.0 – Dynamic Parallelism GPU sub-scheduler

(15)

Questions?

Software Homepage http://www.uintah.utah.edu/

Alstom Clean Coal Boiler Simulation

(16)

Using GPUs in

Energy Applications

ARCHES Combustion Component

Alstom Clean Coal Boiler Problem

Need to approximate radiation transfer equation

Reverse Monte Carlo Ray Tracing (RMCRT)

Rays mutually exclusive - traced simultaneously Ideal for SIMD parallelization of GPU

Offload Ray Tracing and RNG to GPU(s)

(17)

Performance Comparisons

Master-Slave Model vs. Unified

Execution Times – CPU Only

#Cores 2 4 8 16 32

Master

Slave 57.28 20.72 9.40 4.81 2.95 Unified 29.79 15.70 8.23 4.54 2.78

CPU Problem: Combined MPMICE problem using AMR

Run on single Cray XE6 node with two 16-core AMD Opteron 6200 Series (Interlagos cores @2.6GHz) processors

Execution Times – With GPU

#Cores 2 4 6 8 10 12

Master

Slave 4.55 4.09 3.95 3.68 3.64 3.34 Unified 3.82 3.52 3.09 2.90 2.50 2.09

GPU Problem: Reverse Monte Carlo Ray Tracer

Run on a single 12-core heterogeneous node (two Intel Xeon X5650 processors each with Westmere 6-core @2.67GHz, (2) Nvidia Tesla C2070 GPUs and (1) Nvidia GeForce 570 GTX GPU)

References

Related documents

As the test rig for verifying controller strategies developed to handle the non-deterministic time delays in the Ethernet, a Brush Less DC (BLDC) motor drive system of which the

Hence, this study concern on to investigate the relationship between financial psychological factors of financial strains (i.e self-coping mechanisms, financial literacy, and

In a somewhat different manner, in Moi, Tituba, sorcière…Noire de Salem, Maryse Condé presents the life of a black female slave living in Barbados who is brought to the

Lovište u Baranji površine 3831 hektara, u kojem se mogu loviti jelen obični, srna obična i svinja

The credit card number is validated using luhn algorithm, if the result of validation is true then the number will be consider as valid, and check 3 will executed,

The following types of cases are filed in the Civil Part and the numbers preceding them refer to the case type numbers that must be used when filling out the case

“Using the Jana platform to reach the booming mobile market in Africa allowed us to engage far more people in more countries than we could have done by other means”. PETER BALE,

Route of exposure Ingestion Inhalation Skin and/or eye contact Target organs No specific target organs known.. Glycerol Acute toxicity