Date: Tue, 10 Dec 1996 21:47:57 GMT Server: NCSA/1.4.2 Content-type: text/html Last-modified: Fri, 21 Jun 1996 00:11:49 GMT Content-length: 4893
I have many years of software development experience on platforms ranging from IBM mainframe computers (4341, 3090) running MVS/TSO, VM/CMS to RISC workstations and Personal Computers hosting Unix (AIX, Ultrix, OSF/1, Linux, BSDI), NT, OS/2, DOS and Windows. Additionally, I've developed significant WEB applications including an online transaction management system, a distributed document server and more.
Take a look at my resume in postscript form.
Here are a list of my signifcant projects or amassed experiences over the last decade.
The interesting challenges were asynchronously changing the state of all clients in a session, allowing clients to synchronously change the state of the session, "cloning" the user interface for a late arriving client, and defining the interface to intuitively display the session state and the other participating clients.
Following the machine model, the Orca language (Orca-C) was conceived to help the programmers abstract the notions of the CTA. Calvin's work was done by hand translating C code to Orca-C. Orca-C defined three levels of abstraction to assist the programmer: X, Y and Z. The X level specified task parallelism, the Z level encompassed data parallelism and the Y level defined the distribution of data (to realize the parallelism). ZPL stands for Z Programming Level and as the name implies, its purpose was to fulfill the data parallel level of abstraction.
ZPL was designed with two major goals: Efficiency and Portability. These goals often conflict, but have been brought together in matrimony given the design methodology of the language. Basically, the language initially started out with features that could be compiled effectively and the language idioms only included ones with the "highest" degree of parallelism. After all, the language was being targeted for one level of a three level abstraction; therefore, there was no pressure for completeness (the X level would offer this completeness since task parallelism is much more general than data parallelism). In any event, the language grew carefully with much deliberation with full features. ZPL is now a fully functioning language and compiler.
However, my research has focused on the collective communication routines such as broadcasts, scans and reduces.