| Instructors: |
Dr. José E. Moreira Research Staff
Member IBM Thomas J. Watson Research Center
Dr.
Roldan Pozo Leader, Mathematical Software
Group National Institute of Standards and
Technology
Dr. Vladimir Getov School of
Computer Science, Westminster, UK
Dr. Gregor von Laszewski
Argonne National Laboratory, U.S.A.
others
TBD
|
| Who Should
Attend: |
| Skilled Java technology-based software
developers, engineers, programmers, analysts, architects, and
computational scientists
|
| Prerequisites: |
Hands-on Java programming language experience
is required. Understanding of distributed computing and
object-oriented programming is required.
|
| Benefits: |
- Highlights current trends in the use of Java for
high-performance computing
- Introduces Java numeric issues, including
- efficient multi-arrays and complex numbers
- efficient numerical calculations in Java
- Java numerical libraries
- Compares the performance of Java with C/C++ and Fortran
- Discusses how Java can be used for distributed
computing, including
- use of message-passing libraries
- distributed computing with remote objects
- efficient access to computational Grids
| |
| Outline: |
full day
- INTRODUCTION TO HIGH-PERFORMANCE COMPUTING
- History
- Parallel programming paradigms
- High-performance and distributed computing challenges
- Current trends in the high-performance computing
community
- JAVA NUMERIC ISSUES
- Introduction to Java for numerical computing
- Bit-wise reproducibility of floating-point results
- Multi-arrays
- Complex numbers
- Transcendental functions
- Numerical libraries
- Performance analysis
- Comparison with C/C++ and Fortran
- Optimizing BLAS kernels
- Java numeric benchmarks
- General performance improvements
- OPTIMIZING COMPILER TECHNOLOGY
- Java vs. Fortran array data structures
- Optimizing compilers
- Arrays
- Performance results
- JAVA FOR DISTRIBUTED COMPUTING
- a. Distributed programming with message based
libraries
- MPI, openMP, JMS
- FAST RMI, CORBA, and Jini
- Distributed programming in computational Grids
- Introduction to computational Grids
- Secure access to remote resources in Grids
- Remote job submission and monitoring
- Distributed Grid information management an remote
data access
- Designing graphical component to access Grids
| | |
This course will discuss in detail how to use Java for
tasks requiring high-performance computing. The course is intended
for developers and computational scientists experienced in using Java
technology. The course will cover three main areas:
- How to use Java in applications that require enhanced numerics
- How to optimize compilers to achieve high performance
- How to design distributed high-performance applications that use
well-established programming paradigms
Acknowledgments:
This course is developed with the input of the
following researchers (in alphabetical order):
Boisvert, Ron,
NIST Fox, Geoffrey C., Florida State University Getov, Vladimir,
University of Westminster, UK Gupta, Manish, IBM T.J. Watson Research
Center Laszewski, Gregor von, Argonne National Laboratory Midkiff,
Samuel, IBM T.J. Watson Research Center Moreira, Jose, IBM T.J. Watson
Research Center Philippsen, Michael, University of Karlsruhe,
Germany Pozo, Roland, NIST Thiruvathukal, George K., Layola
University
This tutorial is also announced
through the JavaOne conference.
|