Professional Interests (Joel Adams)
My professional interests include both
teaching and scholarship
(consisting of
published work and
professional activities).
If there is a general theme to my scholarship,
it is in reducing the level of frustration involved in dealing
with computers.
Specific areas of interest include:
-
Support software for writing (or learning how to write) parallel applications:
-
OO_MPI_IO,
a set of C++ abstractions that simplify the MPI-IO
parallel I/O mechanism.
-
TSGL: The Thread Safe Graphics Library,
a C++ library for creating real-time visualizations of
the behaviors of the different threads in a multithreaded application.
-
TSAL: The Thread Safe Audio Library,
a C++ library for creating real-time sonifications of
the behaviors of the different threads in a multithreaded application.
-
The Patternlets,
a set of minimalist, syntactically correct programs,
each illustrating the behavior of a parallel programming design pattern.
-
High Performance
Beowulf clusters,
which are distributed multiprocessors
built from commodity, off-the-shelf hardware,
providing performance far exceeding that of a typical desktop.
These projects include:
-
Borg,
a 2018 tera-scale cluster for multidisciplinary
high performance computing.
-
Dahl,
a 2008 tera-scale cluster
for multidisciplinary high-performance computing.
-
Microwulf,
a 2006 personal, portable cluster
providing over 26 Gflops of measured performance
for less than $2500
-- significant computational power
at a price nearly any college or university can afford.
-
Ohm,
a 2001 giga-scale cluster
for multidisciplinary high-performance computing.
See our
HPC at Calvin page for more details about these and other clusters.
-
Computer science education: how
the process of teaching computer science can be improved.
Some of my projects in this area include:
-
Methodologies that produce more reliable and easier to maintain
software.
Applied object-oriented programming,
which currently seems to hold some promise in this area.
Some of my projects in this area include:
-
Extensions to
ooMPI:
a project is to apply object-oriented techniques
to high-performance computing, so that HPC programs are
less work to write.
-
ooMindstorms: A software library supporting
object-oriented control of Lego Mindstorms robots.
-
Cliser,
a system to generate object-oriented source code
for client server systems.
-
Fault-tolerant systems in general, and specifically
networks and distributed systems that can identify and
reconfigure around faulty components.
-
Human-computer interfaces sufficiently simple
that the average person can use them, without
having to consult a manual.
As Christian, I am also interested in the relationship between
computing and Christianity.
I've collected some serious and not so serious links on
Christianity and computing.
Joel Adams —
Professional