PARDS:
A library for PARallel programs with Dataflow Synchronization
For windows version 0.01 (based on UNIX version 0.4)

This is a library for writing parallel programs (for UNIX OSes). 
With this library, you can write parallel programs more easily than
using other libraries like pthread directly. As a practical example, 
bzip2 is parallelized using this library.

* This package is ported from the UNIX version to Windows. 
  Therefore, there are some limitations. 

* doc/manualen.html is a manual. Please see the file for usage. 

* By opening pards-win32.sln file by Visual Studio, you can test the library.
  (My testing environment is Visual Studio 2005.)
  Please edit samples/testsamples-main.cpp to specify the sample to test; 
  then you can test the sample by building and executing the project. 
  (The N-Queens sample is specified by default.)

* src directory contains the library source. 
  sample directory contains sample programs. 

* bzip2-1.0.3 directory contains parallelized bzip2. 
  Using a properly configured command prompt (e.g. the command prompt from 
  "Visual Studio Tools" from "start" menu), please type 
  nmake -f makefile.msc
  in the directory. 
  Then, you can make the parallelized bzip2 (pbzip2) and  
  another parallelized version that uses WorkPool.h (wpbzip2). 
  In general wpbzip2 is a little bit faster, though it depends on the
  environment. 
  The parallelized versions do not delete the original file after 
  compression, unlike the original version. 

* How to use in your program
  Currently, the package does not create dll. It would be simple just to 
  copy the files in the src directory to your program. 

* Bugs an limitations
  The "fork" in SPAWN is implemented using Windows NT native API. Therefore, 
  some Win32 API cannot be used from SPAWN'ed processes. For example, 
  you cannot use printf to write message to the console. 
  I haven't investigated which API can or cannot be used.
  (File I/O seems to be working. SPAWN'ed process can write message to a logfile
  using pards_error/pards_errorf after specifying the file by pards_set_logfile.
  Please use this for debugging. )
  In addition, you cannot use interrupt in Windows version.
  If the program is terminated abnormally, working processes might remain. 
  In this case, please use the task manager to terminate the processes.)

* Copyright and License
  The author of the library is Takuya Araki. The license of this
  library is modified BSD License (see LICENSE file). 
  The library of bzip2 that is included in the package follows the
  license of bzip2 (which is also BSD-style license). 

* Contact of the author: araki@sky.plala.or.jp
