Added some more description of the build-time flags not documented
[charm.git] / CHANGES
1 What's New Since Charm/Converse 5.0
2 ===================================
4 --------------------------------------------------------------------------------
5 Major Features:
6 --------------------------------------------------------------------------------
8 10/06/1999      rbrunner        Added migration-based dynamic load balancing
9                                 framework.
10 11/15/1999      olawlor         Added reduction support foe Charm++ arrays
11 02/06/2000      milind          Added AMPI, an implementation of MPI with
12                                 dynamic load balancing
13 02/18/2000      paranjpy        New platforms supported: net-win32, and                                         net-win32-smp
14 04/04/2000      olawlor         Added arbitrarily indexed Charm++ arrays.
15                                 Also, added translator support for new arrays.
16 04/15/2000      olawlor         Added "puppers" for packing and unpacking 
17                                 objects.
18 06/14/2000      milind          Added the threaded FEM framework.
20 --------------------------------------------------------------------------------
21 Minor Features:
22 --------------------------------------------------------------------------------
24 10/09/1999      rbrunner        Added packlib, a library for C and C++ to 
25                                 pack-unpack data to/from Charm++ messages.
26 10/13/1999      gzheng          New LB strategy: RefineLB
27 10/13/1999      paranjpy        New LB Strategy: Heap
28 10/14/1999      milind          New LB Strategy: Metis
29 10/19/1999      olawlor         New test program for testing LB strategies.
30 10/21/1999      gzheng          New trace mode: trace-summary
31 10/28/1999      milind          New supported platform: net-sol-x86
32 10/29/1999      milind          Added runtime checks for ChareID assignment.
33 11/10/1999      rbrunner        Added Neighborhood base strategy for LB 
34                                 framework.
35 11/15/1999      olawlor         conv-host now reads in a startup file 
36                                 ~/.conv-hostrc
37 11/15/1999      olawlor         New test program for testing array reductions.
38 11/16/1999      rbrunner        Added processor-speed checking functions to
39                                 LB framework
40 11/19/1999      milind          Mapped SIGUSR to a Ccd condtion handler
41 11/22/1999      rbrunner        New LB strategy: WSLB
42 11/29/1999      ruiliu          Modified Metis LB strategy to deal with 
43                                 different processor speeds
44 12/16/1999      rbrunner        New LB strategy: GreedyRef
45 12/16/1999      rbrunner        New LB strategy: RandRef
46 12/21/1999      skumar2         New LB strategy: CommLB
47 01/03/2000      rbrunner        New LB strategy: RecBisectBfLB
48 01/08/2000      skumar2         New LB strategy: Comm1LB, with varying processor
49                                 speeds
50 01/18/2000      milind          Modified SM library syntax, and added a test
51                                 program for SM.
52 01/19/2000      gzheng          Added irecv, a library to simplify conversion
53                                 of message-passing programs to Charm++
54 02/20/2000      olawlor         Added preliminary broadcast support to Charm++
55                                 arrays.
56 02/23/2000      paranjpy        Added converse-level quiescence detection
57 03/02/2000      milind          Added ++server-port option to pre-specify
58                                 CCS port.
59 03/10/2000      wilmarth        Random seed-based load balancer now uses
60                                 bit-vector for active PEs.
61 03/21/2000      gzheng          Added support for marking user-defined events 
62                                 in trace-summary.
63 03/28/2000      wilmarth        Added CMK_TRUECRASH. Very helpful for
64                                 post-mortem debugging of Charm++ programs on
65                                 net-* versions.
66 03/31/2000      jdesouza        Added Fortran90 support to the Charm++ 
67                                 interface translator.
68 03/09/2000      milind          Added support for -LANG and -rpath options 
69                                 in charmc for Origin2000.
70 04/28/2000      milind          Added prioritized converse threads.
71 05/01/2000      milind          Added test programs for TeMPO, AMPI and irecv.
72 05/04/2000      milind          New supported platform: mpi-sp.
73 05/04/2000      gzheng          Added irecv pingpong program.
74 05/17/2000      olawlor         Each chare, group and array element now has to
75                                 have migration constructor.
76 05/24/2000      milind          Added Jacobi3D programs for irecv and AMPI both.
77 05/24/2000      milind          Made migratable an optional attribute of 
78                                 chares, groups, and nodegroups.  
79                                 Arrays are by default migratable.
80 05/29/2000      paranjpy        Added pup methods to arrays, reductions etc 
81                                 internal objects.
82 06/13/2000      milind          Made CtvInitialize idempotent.  That is, it 
83                                 can be called by any number of threads now, 
84                                 only the first one will actually do 
85                                 CtvInitialize.
86 06/20/2000      milind          Added a simple test program for the FEM 
87                                 framework.
88 07/06/2000      milind          Imported Metis 4.0 sources in the CVS tree. 
89                                 Also added code to make metis libraries and 
90                                 executables to Makefile.
91 07/07/2000      milind          Added more meaningfull error messages using 
92                                 perror in addition to a cryptic error codes in
93                                 net-* versions.
94 07/10/2000      milind          fem and femf are now recognized as "languages" 
95                                 by charmc.
96 07/10/2000      saboo           Added the derived datatypes library.
97 07/13/2000      milind          Added +idle_timeout functionality. It takes a 
98                                 commandline parameter denoting milliseconds of 
99                                 maximum consecutive idle time allowed per 
100                                 processor.
101 07/14/2000      milind          Added group multicast. Added 
102                                 CkSendMsgBranchMulti, CldEnqueueMulti, and 
103                                 translator changes to support it.
104 07/14/2000      milind          SUPER_INSTALL now takes "-*" arguments prior 
105                                 to the target, that will be passed to make as 
106                                 "makeflags". This makes it easy to suppress 
107                                 make's output of commands etc (with the -s 
108                                 flag). As a result of this, several Makefiles 
109                                 have been massaged.
110 07/18/2000      milind          Added support for using "dbx" on suns as 
111                                 debugger.
112 07/19/2000      milind          Added ability to tracemode projections which 
113                                 produces binary trace files. Use flag 
114                                 +binary-trace on the command line.
115 07/26/2000      milind          Separated AMPI from TeMPO.
116 07/28/2000      milind          Added test programs to test reduce, alltoall 
117                                 and allreduce functionality of AMPI.
118 08/02/2000      milind          Added an option to let the user specify which 
119                                 "xterm" to use.  For example, on some systems 
120                                 (CDE), only dtterm is installed.  So, by 
121                                 putting ++xterm dtterm on the conv-host 
122                                 commandline, one can use dtterm when ++in-xterm
123                                 option is specified on conv-host commandline.
124 08/14/2000      milind          FEM Framework: Added capabilities to handle 
125                                 esoteric meshes to standalone offline programs.
126                                 Makefile now produces gmap and fgmap programs, 
127                                 which are used for this purpose.  They convert 
128                                 the mesh to a graph before partitioning it 
129                                 using Metis.
130 08/24/2000      milind          Added the 2D crack propagation program as a 
131                                 test program for FEM framework.
132 08/25/2000      milind          Initial implementation of isomalloc-based 
133                                 threads.  This implementation uses a fixed 
134                                 stack size for all threads (can be set at 
135                                 runtime.)
136 08/26/2000      milind          Added a macro CtvAccessOther that lets you 
137                                 get/set a Ctv variable of any thread.  It 
138                                 should be invoked as CtvAccessOther(thread,
139                                 varname); Added CthGetData function to each of 
140                                 the threads implementation.  This function is 
141                                 used in the CtvAccessOther macro.
142 08/27/2000      milind          FEM Framework: Separated mesh to graph 
143                                 conversion capability into a separate program.
144                                 This way, the generated graph can be partitioned
145                                 repeatedly.
146 09/04/2000      milind          Added the class static readonly variables to 
147                                 ci file syntax.
148 09/05/2000      milind          FEM Framework: A very fast O(n) algorithm for 
149                                 mesh2graph , uses more memory, but the tradeoff
150                                 was worth it. Coded by Karthik Mahesh, minor 
151                                 optimizations by Milind.
152 09/05/2000      milind          Added a barebones charm kernel scheduling 
153                                 overhead measurement program.
154 09/15/2000      milind          Added pup support for AMPI and FEM framework.
155 09/20/2000      olawlor         Added capability to have an array of base type 
156                                 where individual element could be of derived 
157                                 types.
158 10/03/2000      gzheng          New supported platform: net-linux-axp
159 10/05/2000      skumar2         Added program littleMD to the test suite.
160 10/07/2000      skumar2         New job scheduler (Faucets projects).
161 10/15/2000      milind          Improved support for Fortran90 in charmc.
162 11/04/2000      jdesouza        Made the Faucets scheduler multi-threaded.
163 11/05/2000      olawlor         FEM Framework: supports multiple element types,
164                                 mesh re-assembly, etc.
165 11/15/2000      gzheng          New platform support: net-cygwin
166 11/18/2000      gzheng          conv-host no longer needs /bin/csh to start 
167                                 remote program.  set 
168                                 CMK_CONV_HOST_CSH_UNAVAILABLE to 1 to use 
169                                 /bin/sh instead.
170 11/25/2000      milind          Finished experimental implementation of 
171                                 converse-threads based on co-operative pthreads.
172 11/25/2000      milind          Added a benchmark suite of all pingpongs in
173                                 Charm++.
174 11/28/2000      milind          Removed deletion of _idx at the end of every 
175                                 send or doneInserting call.  Instead now it is 
176                                 in the destructor of the proxy. This allows us 
177                                 to cache proxies, when proxy creation becomes 
178                                 a bottleneck.
179 11/28/2000      olawlor         Added "seek blocks" to puppers.  This should 
180                                 allow out-of-order pup'ing without the ugliness
181                                 of getBuf; and in a way that works with all 
182                                 PUP::ers.
183 11/29/2000      olawlor         Simplified and regularized command-line-argument
184                                 handling.
185 11/29/2000      milind          AMPI: Added multiple-communicators capability.
186 12/05/2000      gzheng          Now /bin/sh is default shell to fork node 
187                                 program on remote machines.
188 12/13/2000      olawlor         Added charmrun wrapper for poe on mpi-sp.
189 12/14/2000      milind          Added bluegene emulator sources and test 
190                                 programs.  Added "bluegene" as a language known
191                                 to charmc.  Makefile now has a target called 
192                                 bluegene.  Added preliminary bluegene 
193                                 documentation.  (copied from Arun's webpage.)
194 12/15/2000      gzheng          f90charm addition to Makefile and charmc. Also,
195                                 added fixed size arrays support to f90charm. A 
196                                 test program f90charm/hello is checked in.
197 12/17/2000      milind          Added rtest test program. Contributed by jim to
198                                 test Converse message transmission.
199 12/20/2000      olawlor         Added charmconfig script. Enables automatic 
200                                 determination of C++ compiler properties, 
201                                 replacing the verbose and error-prone 
202                                 conv-mach.h entries for CMK_BOOL, 
203                                 CMK_STL_USE_DOT_H, CMK_CPP_CAST_OK, ...
204 12/20/2000      olawlor         Charm++ Arrays optimizations: Key and object 
205                                 now variable-length fields, instead of pointers.
206                                 This extra flexibility lets us save many 
207                                 dynamic allocations in the array framework.
208 12/20/2000      olawlor         Added PUP::able support-- dynamic type 
209                                 identification, allocation, and deletion.  
210                                 Allows you to write:   p(objPtr); and 
211                                 objPointer will be properly identified, 
212                                 allocated, packed, and deallocated (depending 
213                                 on the PUP::er).  Requires you to register any 
214                                 such classes with DECLARE_PUPable and 
215                                 DEFINE_PUPable.
216 12/20/2000      olawlor         Arrays optimizations: Made CkArrayIndex 
217                                 fixed-size.  This significantly improves 
218                                 messaging speed (7 us instead of 10 us 
219                                 roundtrip).  Move spring cleaning check into a 
220                                 CcdCallFnAfter, which gains more speed (down to
221                                 4 us roundtrip).
222 12/20/2000      olawlor         More optimizations: Minor speed tweaks-- 
223                                 conv-ccs.c uses hashtable for handler lookup; 
224                                 conv-conds skips timer test until needed; 
225                                 convcore.c scheduler loop optmizations (no 
226                                 superfluous EndIdle calls); threads.c 
227                                 CMK_OPTIMIZE-> no mprotect.
228 12/20/2000      olawlor         More Optimizations: Minor speed tweaks-- ck.C 
229                                 groups cldEnqueue skip; init.h defines 
230                                 CkLocalBranch inline; and supporting changes.
231 12/22/2000      gzheng          IA-64 support for QuickThreads.
232 01/02/2001      olawlor         CCS: Minor update-- enabled CcsProbe, cleaned 
233                                 up superflous debug messages in server, added 
234                                 Java interface (originally written for 
235                                 AppSpecter).
236 01/09/2001      gzheng          charmconfig converted to autoconf style, need 
237                                 to change and,
238                                 and run autoconf to get configure and copy to 
239                                 charmconfig.  added fortran subroutine name 
240                                 test and get libpthread.a
241 01/10/2001      milind          Added telnet method of getting libpthread.a 
242                                 from charm webserver.
243 01/11/2001      olawlor         Moved projections files here from 
244                                 CVSROOT/projections-java.  Added fast Java 
245                                 versions of the .log file input routines in 
246                                 LogReader, LogLoader, LogAnalyzer, and 
247                                 UsageCalc.  Added "" user interface 
248                                 utility file, allowing times to be input in 
249                                 seconds, milliseconds, or microseconds, 
250                                 instead of just microseconds.
251 01/15/2001      gzheng          add +trace-root to specify the directory to 
252                                 put log files in. this is need in Scyld cluster
253                                 where there is no NFS mounting and no i/o 
254                                 access to home directory sharing on nodes.
255 01/15/2001      milind          Made AMPI into a f90 module instead of 
256                                 'ampif.h' inclusion.  AMPI f90 bindings are 
257                                 now more inclusive.  Fixed argc,argv handling 
258                                 bugs in ArgsInfo message.  Fixed a bug in pup 
259                                 that caused thread not to be sized, but was 
260                                 packed nevertheless. Moved irecv to waitall 
261                                 instead of at in ampi_start.  Made 
262                                 AMPI_COMM_WORLD to be 0, because it clashed 
263                                 with wildcard(-1).  AMPI_COMM_UNIVERSE is now 
264                                 handled properly in the AMPI module.  
265                                 C/C++ data members are NOT visible to 
266                                 Fortran 90.
267 01/18/2001      gzheng          New supported platform: net-linux-scyld
268 01/20/2001      olawlor         Moved array index field from CMessage_* to the 
269                                 Ck envelope itself.  This is the right thing 
270                                 to do, because any message may be sent to/from 
271                                 an array element.  To reduce the wasted space 
272                                 in a message, a union is used to overlay the 
273                                 fields for the various possible message types.
274 01/29/2001      olawlor         Freed charmrun on net-* version from using
275                                 remote shell to fork off processes. One can now
276                                 use a daemon provided in the distribution.
277 02/07/2001      olawlor         Added debugging support to puppers.
278 02/13/2000      gzheng          Added ++local option to charmrun to start node 
279                                 program locally without any daemon; fix the 
280                                 hang program if you type wrong pgm name in 
281                                 scyld version, and redirect all output to 
282                                 /dev/null, otherwise all node program can send 
283                                 its output to console in scyld. Also implemented                                ++local in net-win32 version.
284 02/26/2000      milind          Changed the varsize syntax. Now one can specify
285                                 actual varsize arrays in the interface file
286                                 and have the translator generate alloc, pack 
287                                 and unpack.
289 --------------------------------------------------------------------------------
290 Bug Fixes:
291 --------------------------------------------------------------------------------
293 10/29/1999      milind          Replaced jmemcpy by memcpy in net versions, as
294                                 it was causing a bit to flip (bug reported
295                                 by jim.)
296 10/29/1999      milind          Fixed multiline macros in all header files.
297 02/05/2000      milind          Fixed linking errors by getting the order of
298                                 libraries right from the charmc command-line.
299 02/18/2000      paranjpy        Fixed Charm++ initialization bug on SMPs.
300 02/21/2000      milind          Fixed a context-switching bug in mipspro version
301                                 of QuickThreads.
302 02/25/2000      milind          Charm++ interface translator was segfaulting
303                                 on interface file errors. Fixed that. Also,
304                                 added linenumbers to error messages.
305 03/02/2000      milind          Made CCS work on SMPs.
306 03/07/2000      milind          Made ConverseInit consistent with the manual on
307                                 Origin2000 version.
308 04/18/2000      milind          Fixed a bug in CkWaitFuture, which was caching 
309                                 a variable locally, while it was changed by 
310                                 another thread.
311 05/04/2000      paranjpy        Fixed argv deletion bug on net-win32-smp.
312 06/08/2000      milind          sp3 version: changed optimization flags, which 
313                                 where power2 processor-specific.
314 06/20/2000      milind          mpi-* versions: Fixed ConverseExit since it was
315                                 not obeying the following statement in the MPI 
316                                 standard: The user must ensure that all pending
317                                 communications involving a process completes 
318                                 before the process calls MPI_FINALIZE.
319 07/05/2000      milind          Fixed a nasty bug in charmc in the -cp option. 
320                                 It used to append the name provided to -o flag 
321                                 to the directory provided to the -cp flag.  
322                                 Thus, -o ../pgm -cp ../bin options meant that 
323                                 the pgm would be copied to ../bin/.., which is 
324                                 not the expected behavior. This fix correctly 
325                                 copies pgm to ../bin.
326 07/07/2000      milind          Removed variable arg_myhome, as it was not 
327                                 being used anywhere, and also, setting it was 
328                                 causing problems of env var HOME was not set.
329 07/27/2000      milind          thishandle for the arrayelement was not being 
330                                 correctly set.  Bug was reported by Neelam.
331 08/26/2000      milind          Origin2000: Changed the page alignment to 
332                                 reflect the mmap alignment.  The mmap man page 
333                                 specifically states that it is not the same as 
334                                 page size.
335 09/02/2000      milind          Fixed a bug in code generated for threaded 
336                                 (void) entry methods of array elements. The 
337                                 dummy message that is passed to that method in 
338                                 a thread has to be deleted before calling the 
339                                 object method, because upon object method's 
340                                 return, the thread might have migrated.
341 09/03/2000      olawlor         Minor fix-fixes: 1.) Change to LBObjid hash 
342                                 function would fail for >4-int object indices.
343                                 Replaced with proper function, which also 
344                                 preserves the 1-int case.  2.) Array element 
345                                 sends must go via the message queue to prevent 
346                                 stack build-up for deep single-processor call 
347                                 chains. These might happen, e.g., in a driver 
348                                 element calling itself for the main time loop.
349                                 Messages are now properly noted as sent, then 
350                                 wait through the queue for delivery.  This 
351                                 entailed minor reorganization of the message 
352                                 delivery subsystem.
353 09/21/2000      olawlor         Tiny SMP thread fix-- registrations of a 
354                                 thread-private variable now reserve space on 
355                                 calls after the first.  This wastes space for 
356                                 multiple CthInitialize's-- it's a quick hack to
357                                 get threads working again on SMP versions.
358 10/16/2000      olawlor         A few CCS fixes:   -Added split-phase reply 
359                                 (delay reply indefinitely)  -Cleaned up error
360                                 handling -Pass user data as "void *" instead of
361                                 "char *"
362 11/03/2000      wilmarth        Removed 0 size array allocation in Charm++ 
363                                 quiescence detection.
364 11/20/2000      gzheng          Rewrote part of Fiber thread, including a bug 
365                                 fix for a the non thread-safe function, and a 
366                                 different fiber free strategy.
367 11/29/2000      gzheng          The LB init procedure tried to allocate 
368                                 65536*160 as initial size, which is 10M memory 
369                                 for communication table, which is too big. 
370                                 Cut it down to roughly 1M, and it can expand 
371                                 in later code.
372 12/05/2000      gzheng          In many cases, conv-host exits without print 
373                                 out the error message from remote shell. try 
374                                 to fix it by calling sync to flush the pipe 
375                                 before exit 1.
376 12/10/2000      milind          net-linux: Made static linking the default 
377                                 option because dynamic linking runtime causes 
378                                 isomalloc threads to crash.
379 12/18/2000      milind          Increased portability of isomalloc threads by 
380                                 removing dependence on alloca.
381 12/28/2000      milind          Fixed ctrl-getone abort bug on SMP.
382 12/28/2000      milind          Made _groupTable a pointer on which a 
383                                 constructor is explicitly called.  Since it 
384                                 was a Cpv variable, its constructor was not 
385                                 called by default in case of an SMP version.
386 12/29/2000      olawlor         Prevent infinite copy constructor recursion on 
387                                 Origin2000.
388 01/10/2001      olawlor         Added "explicit" keyword to remove ambiguity 
389                                 for KCC, which was confused by the private 
390                                 PUP::er(int) "cast" constructor and the operator
391                                 |(PUP::er &p,T &t) into rejecting all operator|
392                                 (int,int) as ambiguous.
393 2001/01/17      gzheng          fix the charmconfig bug on paragon-red: the 
394                                 failure testing of fortran won't stop the 
395                                 compilation.
396 01/20/2001      olawlor         Arrays reduction:  Fixed bug-- reduction may end
397                                 because all contributors migrate away. 
398 01/29/2001      olawlor         Fix heap-corrupting bug-- call ->init() on 
399                                 nodeGroupTable, which sets the "pending" 
400                                 message queue to NULL.  This prevents a nasty 
401                                 delete-unitialized-data bug later on.  Also 
402                                 delayed queue creation until messages actually 
403                                 arrive.
405 --------------------------------------------------------------------------------
406 Documentation Changes:
407 --------------------------------------------------------------------------------
409 01/31/2000      milind          Installation manual: Fixed bugs pointed out by
410                                 quantum TA
411 02/28/2000      wilmarth        Added a new look Charm++ manual.
412 06/20/2000      milind          Added pdflatex support to generate PDF versions
413                                 of manuals from LaTeX sources.
414 12/05/2000      milind          Added Orion's FEM manual. Converted from HTML.
415 12/10/2000      milind          Added pplmanual.sty for all manuals.
416 12/17/2000      milind          Added master-slave library documentation to
417                                 convext manual.
418 12/21/2000      saboo           Added DDT documentation.
419 01/02/2001      olawlor         Updated for new CCS version.
421 --------------------------------------------------------------------------------
422 Other Changes:
423 --------------------------------------------------------------------------------
425 10/24/1999      olawlor         charmc is changed to Bourne shell script 
426                                 instead of csh. All conv-mach.csh are
427                                 replaced by
428 10/25/1999      olawlor         SUPER_INSTALL is converted to use bourne shell.
429 10/28/1999      milind          All Makefiles now take OPTS commandline
430                                 arguments.
431 01/16/2000      olawlor         Simplified Charm++ interface translator.
432 02/23/2000      ruiliu          Changed rand() calls from all over the codes
433                                 to the new Converse random number generator.
434 02/26/2000      milind          Simplified the converse scheduler loop by 
435                                 combining the maxmsgs and poll modes.
436 08/31/2000      milind          Imported system documentation into the CVS tree.
437                                 Also added super_install target for docs with 
438                                 necessary Makefile modifications.
439 09/08/2000      olawlor         Made soft links use relative pathnames instead 
440                                 of absolute.  This lets you move a charm++ 
441                                 installation without having to recompile 
442                                 anything.
443 09/11/2000      olawlor         Grouped commonly needed code in the new util
444                                 directory. Also, added pup_c a C wrapper for
445                                 puppers.
446 09/11/2000      olawlor         Slightly reorganized header structure.  Now no 
447                                 headers should need to be listed twice (once in
448                                 ALLHEADERS, again in CKHEADERS).  Now headers 
449                                 are soft-linked instead of copied.  This makes 
450                                 development much easier.  Added support for the
451                                 new Common/util directory.
452 09/21/2000      olawlor         Major reorganization of net-* codes. Now all 
453                                 the TCP socket routines are in separate files.
454                                 Also combined windoes NT code with unix codes.
455 09/21/2000      olawlor         Major rewrite of CCS-- underlying protocol is 
456                                 now binary (send/recv binary data everywhere); 
457                                 conv-host forwards requests to nodes; and 
458                                 source has been significantly re-arranged.  
459                                 (especially if NODE_0_IS_CONVHOST).
460 11/22/2000      milind          Removed IDL translator from distribution.
461 12/01/2000      olawlor         Renamed conv-host charmrun; added test for 
462                                 script conv-host. Also added charmrun for most 
463                                 other machines.
464 12/17/2000      milind          Moved List related data structures into 
465                                 cklists.h in util. Removed most of the redundant
466                                 list implementations.
467 12/20/2000      gzheng          SUPER_INSTALL: format the output of list of 
468                                 versions and make the help page fit into one 
469                                 page of xterm.
470 12/24/2000      milind          Added test-{charm,converse,ampi,fem} targets to 
471                                 super_install.
472 12/28/2000      milind          net-sol-smp now uses pthreads.
473 01/29/2001      olawlor         Merged windowsNT and unix build procedures by
474                                 basing the Windows build on cygwin. Added 
475                                 scripts to deal with unix and windows 
476                                 differences.