AASPI Software Computational Environment Tim Kwiatkowski Welcome Consortium Members November 18, 2008 Overview • Hardware • Clusters • Multiprocessor / Multi-core • Software • Computational Environment • Compilers • Libraries • Graphics • Software Design • Directory Layout • The Future Hardware Clusters The AASPI Software was originally designed 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. Hardware Multiprocessor / 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 Hardware Our Current Resources Older Resources diamond - Sun Enterprise 450, 2ea. Sun Blade 1000 2ea. Sun Blade 2000 corundum - Dual CPU 2.4GHz Xeon 5.2 TB storage Newer Resources Opal - Dual Quad-core 3.0GHz Xeon 16 GB, 15 TB storage Ruby – Quad Quad-core 1.6 GHz Xeon 32 GB, 1 TB storage 22 Windows XP 64bit PC/Workstations. Hardware Our Current Resources – Cluster Resources Muntu 1 management node, 1 head node, 16 compute nodes. Each node: 3.06 GHz Dual processor , 4GB RAM. Total disk storage: ~2TB OSCER (Oklahoma Supercomputing Center for Education & Research) As a whole: 531 User Accessible Nodes, 120TB Fast scratch storage, 34450 GFlop peak, 28030 GFlop sustained. Our own dedicated OSCER nodes / storage Dual Quad core (3 ea. 2.33 GHz, 3ea. 2.66 GHz) 16GB RAM Storage node - Dual Quad core 2.33GHz, 16GB RAM, 18TB disk storage. www.oscer.ou.edu Hardware Recommendations What type of hardware do I need to run the AASPI software? The short answer: It depends. Entry level suggestion: Dual or Quad Quad-core 3.0GHz+ 2GB /core >2 TB disk capacity Software Environment − OS Operating System As shipped, we have chosen to pre-compile the AASPI software. This should work on most Redhat 4 Release 4 and higher installations. Some needed packages blas, lapack, libf2c, bzip2-libs,zlib, X11 packages for running the GUI, Mesa-libGL, Mesa-libGLU Software Environment − 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! Software Environment − Libraries The software depends on several external libraries: Seismic Unix (Center for Wave Phenomena SEPlib (Stanford Exploration Project) - Colorado School of Mines) OpenMPI (We have used MPICH in the past) FFTW (Version 2 at the present time) Lapack & BLAS The FOX Toolkit (GUI interface and seismic data display) Software Environment − Graphics Now we have a GUI interface. It’s X-Windows based. How do we use it? Some Solutions Use a desktop Linux workstation. Use a Mac ThinAnywhere VNC Hummingbird Exceed Xming Cygwin Software Design 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 Software Layout bin ext_lib AASPI Precompiled binaries Non-AASPI package compiled libraries ext_rpm Non-AASPI RPMS ext_src Non-AASPI packages - source Include AASPI include files (along with others) lib AASPI libraries & other shared libraries man AASPI man pages src AASPI source code scripts Scripts – program wrappers and utilities The Future Madagascar (RSF) – You’ve heard this one before. MS Windows? – Perhaps… All of our core code should be multiplatform. MPI is available on Windows platforms via cluster services. The main issues are with our dependencies: Seismic UNIX and SEPlib. AASPI Software Computational Environment Tim Kwiatkowski Thank You! Questions?