the aaspi software computational environment tim kwiatkowski

18
The AASPI Software Computational Environment Tim Kwiatkowski Welcome Consortium Members December 9, 2011 1

Upload: mark-lynch

Post on 30-Dec-2015

26 views

Category:

Documents


0 download

DESCRIPTION

The AASPI Software Computational Environment Tim Kwiatkowski. Welcome Consortium Members December 9, 2011. Overview. Hardware Clusters Multiprocessor / Multi-core Software Computational Environment Compilers Libraries Graphics Software Design Directory Layout The Future. - PowerPoint PPT Presentation

TRANSCRIPT

The AASPI Software Computational EnvironmentTim Kwiatkowski

Welcome Consortium MembersDecember 9, 2011

1

• Hardware• Clusters• Multiprocessor / Multi-core

• Software• Computational Environment

• Compilers• Libraries• Graphics

• Software Design• Directory Layout

• The Future

Overview

2

HardwareClusters

The AASPI Software was originallydesigned to run on U**X/Linux clusters using MPI (Message Passing Interface).

Large Granularity

No need for expensive interconnects.Gigabit Ethernet is sufficient.

Depending on the size of the cluster, can be difficult to administer.

3

HardwareMultiprocessor / Multi-core

• Newer multi-core processors have• become available

• Currently no explicit multi-threading.

• MPI using “Loopback” Communication

• Simpler to administer

• Can be grown into a cluster

4

HardwareOur Current Resources

Older Resourcesdiamond - Sun Enterprise 450fluorite- Dual CPU 2.4GHz Xeon 5.2 TB storage (offline)

Newer ResourcesOpal – Dual Quad-core 3.0GHz Xeon 16 GB, 15 TB storageRuby – Quad Quad-core 1.6 GHz Xeon 32 GB, 11 TB storageJade – Dual Quad-core 2.8 GHz Xeon 48 GB, 5 TB storageHematite – Dual Quad-core 3.46 GHz Xeon 48 GB, 5 TB storageTripolite – Dual Six-core 3.46 GHz Xeon 48 GB, 5 TB storageCorundum – Dual Quad-core 2.33GHz Xeon 32 GB, 10 TB -file server

22 Windows XP/Windows 7 64bit PC/Workstations.

5

Tape Reading Ability Our Current Resources

Older Resources8mm ExabyteDLT-8000IBM 3590B

Newer ResourcesLTO-4

6

HardwareOur Current Resources – Cluster Resources

OSCER (Oklahoma Supercomputing Center for Education & Research) As a whole: 536 User Accessible Nodes, 8800 GB aggregate RAM, 100TB Usable Fast scratch storage, 34450 GFlop peak, 28030 GFlop sustained.

Our own dedicated OSCER nodes / storageDual Quad core (3 ea. 2.33 GHz, 3ea. 2.66 GHz) 16GB RAMStorage node - Dual Quad core 2.33GHz, 16GB RAM, 18TB disk storage.

www.oscer.ou.edu

Muntu1 management node, 1 head node, 14 compute nodes. Each node: 3.06 GHz Dual processor , 4GB RAM. Total disk storage: ~2TB

7

HardwareRecommendations

What type of hardware do I need to run the AASPI software?

The short answer: It depends.

Entry level suggestion:Dual socket with Dual, Quad or Six-core CPU 2.5GHz+2GB /core>2 TB disk capacity

8

SoftwareEnvironment − OS

Operating SystemAs shipped, we have chosen to pre-compile the AASPI software. This should work on most Redhat 4 Release 4 and higher installations.

Some needed packagesblas, lapack, libf2c, bzip2-libs,zlib, X11 packages for running the GUI, Mesa-libGL, Mesa-libGLU

9

SoftwareEnvironment − 64 vs. 32 bit

• The majority of the AASPI code has been converted over to the aaspi_io framework which is compatible with the SEP files.

• SEPLib limited us to 32 bit code. We are still compiling most of our code as 32bit, but we have begun to release both 32bit and 64bit compiled binaries.

• Certain codes like the SOM code require more memory, 32bit codes are limited to 2 GB per process.

• However, we are still using SEP utilities for display.

10

We are finally moving away from SEPlib!

SoftwareEnvironment − Compilers

We have chosen to pre-compile the AASPI software to make your life easier. However, IF you are compiling on your own…

Required: A good Fortran90 compiler such as the Portland Group Fortran compiler or the Intel Fortran 90/95 compiler. We use the Intel Fortran compiler.

Required: A good C/C++ compiler. GCC is fine.

Required: Patience!

Most of the compiling issues come from the 3rd party packages!

11

SoftwareEnvironment − Libraries

The software depends on several external libraries:

Seismic Unix (Center for Wave Phenomena - Colorado School of Mines)SEPlib (Stanford Exploration Project) SEPlib utilities are primarily used for display – most of the AASPI code no longer requires SEPlib (or SU)SEG-Y import/export uses aaspi_io and does not require SU or SEPlib.

OpenMPI (We have used MPICH in the past)FFTW (mostly Version 2 at the present time migrating to version 3)Lapack & BLAS (The Intel Math Kernel Library could be used as a substitute)The FOX Toolkit (GUI interface and seismic data display)

12

SoftwareEnvironment − Graphics

Now we have a GUI interface.Based on the FOX Toolkit.For Linux this means X-Windows based.How do we use it?

Some SolutionsUse a desktop Linux workstation.Use a MacThinAnywhereVNCHummingbird ExceedXmingCygwin

13

SoftwareDesign Practices/Goals

• Use modern programming languages• Fortran 90/95• C/C++

• Modular Design• Maximize code re-use• Use Fortran 90/95 modules/interfaces• Use C++ classes/template programming

• Libraries• Organize processes/functions into logical, reusable libraries

14

SoftwareLayout

AASPI

bin

bin64

ext_lib

ext_rpm

ext_src

include

include64

lib

lib64

man

src

scripts

Precompiled binaries – 32bit

Non-AASPI package compiled librariesNon-AASPI RPMSNon-AASPI packages - source

AASPI include files (along with others)

AASPI man pagesAASPI source codeScripts – program wrappers and utilities

AASPI libraries & other shared libraries

15

Precompiled binaries – 64bit

AASPI include files (64 bit Fortran module files)

AASPI libraries – 64bit

The Future

Replacing the rest of the SEPlib dependencies – We hope do develop some display tools of our own as we move away from the SEP framework. At this point, we have most of our code converted to our own API. However, we are still shaking out some of the bugs introduced by the conversion.

MS Windows? – Perhaps… All of our core code should be multiplatform. MPI is available on Windows platforms via cluster services.

16

Future ComputingGPU Research -- Still on our Radar

We are experimenting with the newest generation of equipment – GPUs (Graphics Processing Units)

We were working with CUDA (Compute Unified Device Architecture from nVidia). OpenCL looks like a more promising road for code portability.

The software development target for GPU processing will be the desktop PC most likely as plug-ins for Petrel. However, OSCER does have a GPU cluster which we have not tested.

Certain codes may lend themselves more naturally to GPU processing than others.

17

AASPI Software Computational EnvironmentTim Kwiatkowski

Thank You!

Questions?

18