Skip to main content

Threads in an Undergraduate Course: A Java Example Illuminating Different Multithreading Approaches

  • Conference paper
Computational Science and Its Applications – ICCSA 2004 (ICCSA 2004)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 3044))

Included in the following conference series:

Abstract

Multithreading is a fundamental approach to expressing parallelism in programs. Since Java is emerging as the de facto standard language for platform independent software development in higher education, there is need for teaching multithreading in the context of Java. We use a simple problem from scientific computing to explain two different multithreading approaches to second-year students. More precisely, a simple boundary value problem is considered, which makes visible the differences between native Java threads and the OpenMP interface. So, the students are able to appreciate the respective merits and drawbacks of a thread package that is integrated into the Java programming language and an approach combining compiler support with library calls.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Philippsen, M., et al.: JavaGrande – Work and Results of the JavaGrande Forum. In: Sørevik, T., Manne, F., Moe, R., Gebremedhin, A.H. (eds.) PARA 2000. LNCS, vol. 1947, pp. 20–36. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  2. Boisvert, R.F., Moreira, J., Philippsen, M., Pozo, R.: Java and numerical computing. IEEE Computing in Science and Engineering 3, 18–24 (2001)

    Google Scholar 

  3. Moreira, J.E., Midkiff, S.P., Gupta, M., Wu, P., Almasi, G., Artigas, P.: NINJA: Java for high performance numerical computing. Scientific Programming 10, 19–33 (2002)

    Google Scholar 

  4. Moreira, J.E., Midkiff, S.P., Gupta, M.: From flop to megaflops: Java for technical computing. ACM Transactions on Programming Languages and Systems 22, 265–295 (2002)

    Article  Google Scholar 

  5. Java Grande Forum (2003), http://www.javagrande.org

  6. Bücker, H.M., Lang, B., Bischof, C.H.: Parallel programming in computational science: an introductory practical training course for computer science undergraduates at Aachen University. Future Generation Computer Systems 19, 1309–1319 (2003)

    Article  Google Scholar 

  7. Lea, D.: Concurrent Programming in Java: Design Principles and Patterns. Addison-Wesley, Reading (1996)

    Google Scholar 

  8. Oaks, S., Wong, H.: Java Threads. O’Reilly, Sebastopol (1997)

    Google Scholar 

  9. OpenMP Architecture Review Board: OpenMP C and C++ Application Program Interface, Version 1.0 (1998)

    Google Scholar 

  10. OpenMP Architecture Review Board: OpenMP Fortran Application Program Interface, Version 2.0 (1999)

    Google Scholar 

  11. Bull, J.M., Kambites, M.E.: JOMP – an OpenMP-like interface for Java. In: Proceedings of the ACM 2000, Java Grande Conference, pp. 44–53 (2000)

    Google Scholar 

  12. Kambites, M.E., Obdrzalek, J., Bull, J.M.: An OpenMP-like interface for parallel programming in Java. Concurrency and Computation: Practice and Experience 13, 793–814 (2001)

    Article  MATH  Google Scholar 

  13. Message Passing Interface Forum: MPI: A message-passing interface standard. International Journal of Supercomputer Applications 8, 165–414 (1994)

    Google Scholar 

  14. Baker, M., Carpenter, B.: MPJ: A proposed Java message passing API and environment for high performance computing. In: Rolim, J.D.P. (ed.) IPDPS-WS 2000. LNCS, vol. 1800, pp. 552–559. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  15. Stoer, J., Bulirsch, R.: Introduction to Numerical Analysis, 2nd edn. Springer, New York (1993)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2004 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Bücker, H.M., Lang, B., Pflug, HJ., Vehreschild, A. (2004). Threads in an Undergraduate Course: A Java Example Illuminating Different Multithreading Approaches. In: Laganá, A., Gavrilova, M.L., Kumar, V., Mun, Y., Tan, C.J.K., Gervasi, O. (eds) Computational Science and Its Applications – ICCSA 2004. ICCSA 2004. Lecture Notes in Computer Science, vol 3044. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24709-8_93

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-24709-8_93

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-22056-5

  • Online ISBN: 978-3-540-24709-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics