High Performance by Design
Parallel Computing on x86-based PC in 1993
[Posted by Jenn-Ching Luo on Apr. 17, 2009 ]
Dual core is a standard feature for the PC sold today. We can say almost every modern PC has the capacity for parallel computing. Multicore-ready has become a standard requirement of software.
I started developing parallel software for x86-based PC in 1993. It is unclear how many parallel applications for PC were developed in those days. In 1993, Dr. Chudnovsky of Columbia University asked me a possibility to port a public domain software, DYNA3D, into parallel for x86-based PC on Windows. That was the first opportunity for me to work on Windows. Before 1993, I developed parallel applications on multiprocessor computers of Argonne National Laboratory and Sandia National Laboratory for computational mechanics and computational mathematics.
Dr. Chudnovsky gave me a CD ROM drive and a CD that contained Windows NT 1.0. I could not recall exactly. It seemed that the Windows NT 1.0, I received, was a beta version. The CD ROM drive is 8 bit, very slow. I bought a 486DX2-66 computer to install Windows NT 1.0.
I started developing and simulating parallel computing on 486DX2-66. My 486DX2-66 computer was upgraded to NT 3.5 and 3.51 when Microsoft released new versions. There was no tool for parallel computing in those days for x86-based PC. The only "tools", I could apply, is Microsoft Fortran PowerStation and Windows SDK. I developed parallel programs in fortran that called Windows SDK for parallel processing. The parallel programs were compiled with Microsoft Fortran PowerStation.
I did not have a multiprocessor PC to test the parallel programs. All the parallel processing was simulated on an 486DX2-66. Simulation was performed on virtual processors, which could be assumed to any numbers. One thing that could be sure was that the result of parallel processing was correct. However, there was no way to measure a speedup because simulation was done on a physical processor.
The first parallel performance, I tested, was on a dual Pentium 90 computer. (There were dual Pentium 66 computers.) It was a big surprise that the parallel programs I developed and simulated on a 486DX2-66 could yield a highly efficient speedup on dual Pentium 90 without a change of the programs. The parallel programs included finite element analysis and direct solvers for system equations. Most programs can yield a speedup higher than 1.90x on dual Pentium 90, and some programs even can run up to 1.99x. LAIPE, parallel direct solvers for system equations, was one of the parallel programs developed in those days. It is a surprise LAIPE, that was initially developed and simulated on a 486DX2-66, can show a highly efficient speedup on modern multicore computers.
Multicore has become a standard feature of PC. Before the availability of multiprocessor PC, I started developing parallel programs for x86-based PC. Time goes fast. It has been 16 years.