Hands-On Training for Undergraduates in High-Performance Computing Using Java

  • Christian H. Bischof
  • H. Martin Bücker
  • Jörg Henrichs
  • Bruno Lang
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1947)


In recent years, the object-oriented approach has emerged as a key technology for building highly complex scientific codes, as has the use of parallel computers for the solution of large-scale problems. We believe that the paradigm shift towards parallelism will continue and, therefore, principles and techniques of writing parallel programs should be taught to the students at an early stage of their education rather than as an advanced topic near the end of a curriculum. A certain understanding of the practical aspects of numerical modeling is also a useful facet in computer science education. The reason is that, in addition to their traditional prime rôle in computational science and engineering, numerical techniques are also increasingly employed in seemingly non- numerical settings as large-scale data mining and web searching. This paper describes a practical training course for undergraduates, where carefully selected problems of high-performance computing are solved using the programming language Java.


Erential Equation Practical Training Data Parallelism Vector Operation Task Parallelism 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    A. J. C. Bik and D. B. Gannon. A note on native level 1 BLAS in Java. Concurrency: Practice and Experience, 9(11): 1091–1099, 1997.CrossRefGoogle Scholar
  2. 2.
    Java Grande Forum.
  3. 3.
    R. F. Boisvert, J. J. Dongarra, R. Pozo, K. A. Remington, and G. W. Stewart. Developing numerical libraries in Java. Concurrency: Practice and Experience, 10(11-13): 1117–1129, 1998.CrossRefGoogle Scholar
  4. 4.
    J. E. Moreira, S. P. Midkiff, M. Gupta, P. V. Artigas, M. Snir, and R. D. Lawrence. Java programming for high-performance numerical computing. IBM Systems Journal, 39(1): 21–56, 2000.CrossRefGoogle Scholar
  5. 5.
    J. E. Moreira, S. P. Midkiff, and M. Gupta. From op to mega ops: Java for technical computing. To appear in ACM Transactions on Programming Languages and Systems.Google Scholar
  6. 6.
    R. L. Burden and J. D. Faires. Numerical Analysis. Brooks/Cole Publishing Company, Pacific Grove, CA, 6th edition, 1997.Google Scholar
  7. 7.
    D. Kincaid and W. Cheney. Numerical Analysis. Brooks/Cole Publishing Company, Pacific Grove, CA, 2nd edition, 1996.zbMATHGoogle Scholar
  8. 8.
    A. Griewank. Evaluating Derivatives: Principles and Techniques of Algorithmic Differentiation. SIAM, Philadelphia, PA, 2000.zbMATHGoogle Scholar
  9. 9.
    A. Malony and S. Shende. Performance technology for complex parallel and distributed systems. In G. Kotsis and P. Kacsuk, editors, Distributed and Parallel Systems: From Concepts to Applications-Proc. Third Austrian-Hungarian Workshop on Distributed and Parallel Systems, DAPSYS 2000, pages 37–46, Norwell, MA, 2000. Kluwer.Google Scholar
  10. 10.
    W. E. Nagel, A. Arnold, M. Weber, H.-C. Hoppe, and K. Solchenbach. VAMPIR: Visualization and analysis of MPI resources. Supercomputer 63, XII(1): 69–80, 1996.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Christian H. Bischof
    • 1
    • 2
  • H. Martin Bücker
    • 1
  • Jörg Henrichs
    • 2
  • Bruno Lang
    • 2
  1. 1.Institute for Scientific ComputingAachen University of TechnologyAachenGermany
  2. 2.Computing CenterAachen University of TechnologyAachenGermany

Personalised recommendations