Underneath the main block_solve directory are three other directories: (1) src, which contains the source code and makefiles for BlockSolve, (2) doc, which contains the documentation for BlockSolve, and (3) examples, which contains example programs that demonstrate the use of BlockSolve.
To make the BlockSolve library, one should examine the files make* and Makefile in the src directory. These Makefiles are well documented. It is likely that the user will have to modify them as directed in the Makefiles themselves. It is necessary to have the Chameleon package installed before trying to make BlockSolve.
Several compiler options have an effect on BlockSolve. The DEBUG flags were described in §3. The flags MLOG, MCOUNT, and MAINLOG are associated with the logging facilities within BlockSolve, and more information can be found on them in the file BSlog.h. There are many compiler flags defined by the Chameleon package that have an effect on BlockSolve; for information on these flags see the Chameleon documentation. A preprocessor variable called DOUBLE is defined in BSsparse.h. If DOUBLE is defined, then BlockSolve will compile a double precision version; otherwise, a single-precision version is compiled. Unfortunately, the routine names for both versions are the same.
All the routines in the Chameleon package have been tested extensively with thousands of runs within a few applications at Argonne as well as inside the example programs. We believe that the code is error-free at this point, but it is still possible that when BlockSolve is used in new applications, previously undiscovered errors may be found. At the time of this writing, we have run the code on the Intel DELTA, the Intel iPSC/860, and a network of Sun Sparcstations. In the case of the Intel machines we instructed the Chameleon package to use the Intel message-passing primitives directly wherever possible. On the Sparcstations we instructed the Chameleon package to use the p4 message-passing system to handle the communication. In the near future we would like to test the code on the CM-5 as well as on Sparcstations using the PVM message-passing system.