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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
Boisvert, R.F., Moreira, J., Philippsen, M., Pozo, R.: Java and numerical computing. IEEE Computing in Science and Engineering 3, 18–24 (2001)
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)
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)
Java Grande Forum (2003), http://www.javagrande.org
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)
Lea, D.: Concurrent Programming in Java: Design Principles and Patterns. Addison-Wesley, Reading (1996)
Oaks, S., Wong, H.: Java Threads. O’Reilly, Sebastopol (1997)
OpenMP Architecture Review Board: OpenMP C and C++ Application Program Interface, Version 1.0 (1998)
OpenMP Architecture Review Board: OpenMP Fortran Application Program Interface, Version 2.0 (1999)
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)
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)
Message Passing Interface Forum: MPI: A message-passing interface standard. International Journal of Supercomputer Applications 8, 165–414 (1994)
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)
Stoer, J., Bulirsch, R.: Introduction to Numerical Analysis, 2nd edn. Springer, New York (1993)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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