Technical Activities

isMember = false, isStaff = false

Candidate for IEEE Computer Society TCPP Chair

Andrew Lumsdaine

Position Statement

If you are reading this you already know that parallel programming is not only "hot" again -- it is fun again! I wrote my first parallel program on a Thinking Machines CM-2 in 1988. At that time, parallel computing meant big, expensive, custom hardware -- and big, expensive, custom software. Since those early days, we have seen special-purpose hardware and software replaced in large part by off-the-shelf counterparts. With the widespread of adoption of off-the-shelf technology, it seemed that the parallel computing ecosystem might be dominated by only a few CPU varieties, leaving little room for innovation. However, as we have all seen, Moore's law has taken us in new directions as power limitations were reached and clock speeds stalled. With the arrival of multicore CPUs and GPUs, we again have an exciting diversity of architectures to use -- including heterogeneous, hierarchical systems that combine different architectures. And, we have a similar diversity of programming models, languages, and tools to go with them. This renaissance for parallelism presents us with many new and exciting research possibilities.

As good as the times are, this is nevertheless a critical time for TCPP. As the saying goes, with great power comes great responsibility. All users of computers will soon be users of parallel computers (if they are not already). The TCPP therefore has a tremendous responsibility to provide leadership in parallel computing -- and this responsibility is a unique opportunity. Because of the pervasiveness of parallelism, we have the opportunity to collaborate with, and impact, almost every field in the science and research community. Moreover, we are presented with important responsibilities and opportunities outside of the scientific realm. The pervasiveness of parallelism means we also have the responsibility and opportunity to collaborate with, and impact, the mainstream / commercial computing community.

One such area where TCPP has recently taken a leadership role is in education -- which is both a responsibility and an opportunity. Headed by Sushil Prasad (the current TCPP chair), the TCPP curriculum committee has recently developed a set of guidelines for treating parallel and distributed computing across the undergraduate CS curriculum. This is an important first step but significant work remains to be done to continue to refine the guidelines, facilitate their dissemination, and assess their effectiveness (leading to further refinement). I was a member of the committee that developed these guidelines and consider continued support for them to be a key ongoing activity for TCPP.

Since we are a community, ultimately our effectiveness will be due to the efforts and contributions of each of us as members of TCPP -- but our impact can be significant because as a community our efforts can be coordinated and directed at specific issues. As chair, my objectives would be to continue to strengthen and grow TCPP as a community and to leverage our strength as a community to meet the responsibilities and opportunities that are currently presented to us during this important time. Some particular activities that I can undertake as chair to these ends include: raising the visibility of TCPP and its various activities and to broaden their impact; seeking out and facilitating new interactions with other scientific communities; and initiating discussions to expand the scope of TCPP to reflect the increasing pervasiveness of parallelism in all parts of computing.

Communication and dissemination of research results is one of the primary activities of TCPP (via conferences, publications, etc.) There is currently a tremendous amount of activity in all parts of parallel and distributed computing. However, as emerging technologies eventually mature and evolve into common practice, there will also be a place for TCPP to facilitate community standards. The timetable for such activities to even begin may be further off than the term of the next chair (or the next next chair), but given how significant the impact of standards can be (consider MPI), we should begin consideration now in order to be proactive rather than reactive.

In conclusion, I ask for your vote for chair of TCPP; it would be a tremendous honor to serve the community in which I have been working for so many years.

Biosketch

Andrew Lumsdaine has been writing parallel programs for 22 of the 32 years that he has been programming. He wrote his first Fortran program, using punchcards, in 1979. Over the next three decades he wrote significant programs using Pascal, Scheme, C, Matlab, C*, C++, PVM, MPI, Python and wrote many not-so-significant programs in these and a number of other languages.

Lumsdaine received his BS, MS, and PhD degrees from MIT in 1984, 1986, and 1992, respectively. From 1992 through 2001, he was on the faculty in the Department of Computer Science and Engineering at the University of Notre Dame. He is currently a Professor of Computer Science at Indiana University, where he is also Director of the Open Systems Laboratory and Associate Director of the Digital Science Institute.

His research interests include programming languages, generic programming, parallel programming, high-performance computing, computational science and engineering, and computational photography. He has applied the results of his research to problems in circuit simulation, semiconductor device simulation, hydrocarbon recovery, image and video processing, and tissue simulation, among others.

Due to his belief that software is just as important an artifact as scholarly publication, Lumsdaine has participated in development of major software projects including, LAM/MPI, Open MPI, OSCAR, Boost Graph Library, Parallel Boost Graph Library, the Boost MultiArray Library, the Iterative Template Library, and the Matrix Template Library. To ensure effective (and lasting) transition of research results to practice, he has also participated in MPI-2 Forum, MPI-3 Forum, BLAS technical forum, and the ANSI/ISO C++ Standards Committee. Most recently, he was an active participant in the TCPP curriculum committee.

Lumsdaine is a member of ACM, IEEE, and SIAM. In 1995, he received the NSF Career Development Award. In 2008, he was the faculty sponsor of a team of undergraduate students that won the Cluster Challenge at SC'08.