A Short TMacD Biography
I have live in the Minneapolis area just about all of his life.
I graduated from the University of Minnesota in 1974 with B.S.
in Mathematics from the College of Education. After just one year
of teaching high school mathematics, I said to himself, "why
did I ever think high school students wanted to learn math?".
I went back to the University of Minnesota and earned a B.S.
degree in computer science from the Institute of Technology in 1978.
After that, I decided it was time to join working America in
the great American work place. So, I got married and moved to
Rochester, MN to work for IBM. A brief history of my work life
follows.
- 2 years at IBM Rochester writing RPG compilers for the System 38.
- 6 months at the Federal Reserve Bank of Minneapolis - not doing much.
- 2 years at NCR Comten writing an NCRL code generator.
- 17 years at Cray Research doing various things detailed below (in
reverse chronological order):
- C/C++ frontend compiler development for Massively Parallel
and vector platforms.
- Program debugging tools for C, C++, and Fortran applications.
Lead cross-industry team to define version 1 of the OpenMP
C/C++ parallel programming language standard.
- C/C++ frontend development for both Cray and SGI platforms.
- Managed compiler optimization team for all platforms (Parallel
Massively Parallel, and SPARC). Fully vectorizing and
autotasking compiler supporting Fortran 90 language. Software
pipelining introduced on Massively Parallel System.
- Managed Massively Parallel code generation team during transition
from T3D to T3E.
- Member of the Massively Parallel code generation team that
designed the Massively Parallel calling conventions (Alpha
processor). Primary responsibilities were register assignment,
branch analysis, and peephole optimizations. Supported languages
Fortran, C, and C++.
- Managed the team developing a Standard C Compiler that conformed
to the new ANSI/ISO standard. First ANSI conformant C compiler
commercially available. Initial release was a full optimizing
and vectorizing compiler. Autotasking parallelism capabilities
added in subsequent releases.
- Lead development team porting the PCC compiler to Cray
platforms. This was the first C compiler released by Cray.
Compiler enhancements included vectorization and
autotasking capabilities.
- Added enhanced vectorization capability to Cray's first Fortran
compiler, CFT. CFT was written in Cray assembly language. The
optimizations involved: induction variable analysis, subscript
canonicalization, and loop unrolling. Other features implemented
include enhancing user vectorization messages.
- Almost 4 years at e.Intelligence developing predictive analysis
technology with a primary focus on server development.
Predictive technology organizes large volumes of data into coherent
hierarchies allowing statistical analysis results and human initiated
subjective overrides to improve the efficiency of both supply and
demand chains. Unfortunately, on September 11, 2001, a series of
coordinated suicide attacks by al-Qaeda upon the United States
caused serious damage - including damage to the American economy.
Two years later e.Intelligence was unable to find a funding source.
- Started at Cassatt (another software startup originally called
UnlimitedScale but acquired by Cassatt) in September of 2003.
I worked in the programming environments area for almost a year and
had a great time helping create an environment for the development,
debugging, testing, and executing of parallel programs.
After the acquisition by Cassatt, the company focus and culture changed.
Cassatt was just not a good fit for for the directions I wanted to
pursue.
- My other responsibilities included the design, development, and
implementation of a Linux and Windows boot manager, and a Linux and
Windows image manager.
This was primarily written in Java for cluster and blade systems
that are autonomic and support grid computing.
After the acquisition by Cassatt, the company focus and culture changed.
Cassatt was just not a good fit for for the direction I wanted to
pursue.
- In May of 2005 I went to work for EiVia (sounds like 'idea') and
became their Chief Architect. EiVia acquired the e.Intelligence
intellectual property and is expanding the use into the manufacturing
industry.
See www.eivia.com for continued
updates on EiVia's progress.
Unfortunately, EiVia lost funding after about four years of
very interesting development work.
EiVia was a great place to work but I am beginning to see a pattern.
EiVia (at this point) still survives on a very tight budget,
but the entire technical staff was let go as there is just not
enough money.
- After EiVia let me go, I decided to pursue something more stable.
I accepted an offer from ThomsonReuters and started working on
financial analytics on August 3, 2009. This is a very different
position for me but also very interesting, new and exciting.
I have worked on integrating a prepayment model library into
the existing Calculation Services library used by the pricing group.
I have also worked on porting their software to an x86 64-bit Solaris
environment.
- Other things worth noting:
- Patent #5586325, "Method for the dynamic allocation of array sizes in
multiprocessor system," awarded 17-DEC-1996
- Patent #5765181, "System and method of addressing distributed memory
with a massively parallel processing system," awarded 9-JUNE-1998.
- A member of the UPC Consortium helping to define a parallel
C Language
- 16 year member of J11, the committee that defined the C Standard.
- Helped organize X3J11.1, the Numerical C Extensions Group (NCEG) that
produced a Technical Report about C for numeric and scientific
programming (used as a base document for emerging C9X standard).
- Numerical Editor from 1989 to 1991 of the quarterly published
"Journal of C Language Translation"
- Organized C Workshop for Scientific and Numerical Programming in C for
Supercomputing '89 conference.
TMacD is married to a wonderful woman and has a daughter that's
the joy of his life.
He plays tennis, rides his bike, plays chess,
and can still be a party animal on occasion. *wink*