Scientific Software Days 2008

The Texas Advanced Computing Center, the University of Texas Institute for Geophysics, and the University of Texas Bureau of Economic Geology are organizing the 2008 Scientific Software Days, where the scientific community can share experiences of developing software and learn about new developments in general scientific software.

Schedule:

May 15

8:30 AM registration, coffee and snacks

9:00 AM Supercomputing facilities at TACC (Karl Schulz, TACC)

9:30 AM Beginning and advanced visualization (Romy Schneider, TACC)

10:00 AM MyCluster system for Grid computing (Ed Walker, TACC)

10:30 AM break

10:45 AM SPSS, SAS and R (James Bryant, Biological Sciences, UT)

11:15 AM Custom Linear Algebra Libraries with FLAME (Robert van de Geijn, Computer Science, UT)

11:45 AM HPC Considered Harmful (Greg Wilson, University of Toronto)

12:30 PM lunch

1:30 PM - 3:10 PM

Leveraging Python’s Dynamic Nature for Scientific Dataflow (Eric Jones, Enthought)

Data flow systems are common in a number of scientific disciplines from seismic processing to 3D visualization. In these systems, larger problems are described by the connections between inputs and outputs of simpler algorithmic building blocks. The information provided by the resulting graph of data/algorithm dependencies is useful for partial execution, parallel programming, debugging, etc. of the scientific tasks.

Software frameworks for describing and executing these graphs are often constructed on a special purpose “execution engine” complete with its own object hierarchy, specification for algorithmic blocks, etc. While such a framework can be built in Python, it turns out that the dynamic nature of Python along with its built-in code analysis tools provide much of the foundation for such a system. Using this foundation can minimize development effort, simplify interfacing with other libraries, increase flexibility, and improve execution speed. This talk will investigate the “Blocks and Context”, a library under development in Enthought’s open source tool set that is based on these ideas. It will also describe how, using these tools, the same scientific task in a variety of analysis needs including “what-if” scenarios, stochastic studies, and optimization.

Interactivity in Biological Simulation (Thomas Blom, Biochemistry, UT, and KinTec)

From Prototype to Patient Care: Clinical Trial Software Development (John Cook, M D Anderson Cancer Care Center)

Boundary value calculations of conformational transitions in proteins (Peter Majek, ICES, UT)

PIO: A Parallel I/O Library (Robert Jacob, Argonne National Laboratory)

3:20 PM - 5:00 PM

LabView in Multi-Core and Parallel Environments (Darren Schmidt, National Instruments)

Reproducible Computational Experiments Using the Madagascar System (Sergey Fomel, Jackson School of Geosciences, UT)

Parallel Seismic Wave Simulations on Lonestar and Ranger (Chunlei Chu, Jackson School of Geosciences, UT)

Grid-Enabled Ensemble Kalman FIltering for Hydrocarbon Reservoir Management (Ravi Vadapalli, Texas Tech)

May 16

8:30 AM : registration, coffee and snacks

9:00 AM: IBM presents the Eclipse Development System (Beth Tibbits and Greg Watson)

12:30 PM: lunch

1:30 PM : Enthought Inc presents Scientific Python (Travis Oliphant)

Python has emerged as an excellent choice for scientific computing because of its simple syntax, ease of use, and elegant multi-dimensional array arithmetic. Its interpreted evaluation allows it to serve as both the development language and the command line environment in which to explore data. Python also excels as a “glue” — a common need in the scientific arena.

The first half of the tutorial introduces the Python programming language to scientists. The pace is fast and geared toward individuals already comfortable with a programming language such as Matlab, C, or Fortran. Attendees will learn the basic constructs of the language and how to do basic numerical analysis withPython. The 3rd section covers the SciPy library (www.scipy.org) that provides modules for linear algebra, signal processing, optimization, statistics, interpolation, ODE solvers, special functions, etc. We also cover scientific plotting with Python.

The second half of the tutorial covers advanced topics in scientific computing such as integrating Python with other languages and parallel programming. Wrapping Fortran, C, and C++ codes, either for optimized speed or for accessing legacy code bases is covered in the middle section. Tools such as SWIG, f2py, and weave are all discussed along with common pitfalls and good design practices.

  1. Introduction to the Python Language — 1 hour
  2. Array Arithmetic with Numeric — 3/4 hour
  3. Scientific algorithms with SciPy — 1 hour
  4. 2D visualization and plotting — 1/4 hour
  5. Introduction to Python as “glue” — 1/4 hour
  6. Wrapping Fortran — 1/2 hour
  7. Wrapping Legacy C/C++ — 3/4 hour