Multithreaded performance has improved significantly in Version 10,
especially for the symmetric solvers.
Functions for transposing distributed matrices are now available.
The regular 64-bit libraries can now handle large matrices with factors
containing more than 2 billion nonzeros without requiring an 8-byte
integer library.
Two new massively parallel platforms, Blue Gene P and Cray XT4 are
now supported.
New symmetric factorization algorithms have been introduced that
reduce memory use in multithreaded mode.
Software available from alphaWorks for AIX, Linux, and SunOS.
If you need WSMP and PWSMP libraries for any other platform, please send e-mail to discuss the possibility.
Please refer to the section titled "Recent Changes and Other Important
Notes" in the Users' Guide before upgrading to a newer version of the
software.
The unsymmetric solver in the MPI-based libraries may fail or stall
during iterative refinement with Fortran-style numbering. Please
send e-mail to get a fix.
On AIX, setting the environment variable RT_GRQ to ON if smt_threads
are enabled can result in performance degradation. RT_GRQ must be set to
OFF if smt_threads are enabled and ON if smt_threads are disabled.
The new serial/multithreaded symmetric solvers are more memory efficient
than the older ones, but may be slower for matrices whose factors are
fairly sparse. If you notice a slowdown in your application and if
memory is not a constraint, you may switch to the older solvers by setting
IPARM(31) = 5 or 6.
The AIX libraries are provided both with and without BLAS.
For large 3-D problems, ESSL BLAS is much faster and should be linked
with the WSMP libraries built without BLAS.
Running WSMP in 64-bit mode with multiple threads on certain Linux
distributions can result in severe memory fragmentation or memory leaks. This
is due to a bug in the glibc malloc library, and is not a WSMP bug.
If you encounter this problem, then please download the file
tcml.tar.gz and follow the instructions in
this README file to bypass glibc malloc and use
Google's TCmalloc
library instead. This should fix the problem.
On Linux, the environment variables MALLOC_TRIM_THRESHOLD_ and
MALLOC_MMAP_MAX_ must be set to -1 and 0, respectively.
On AIX, the environment variables SPINLOOPTIME and YIELDLOOPTIME
must be set to 200, AIXTHREAD_COND_DEBUG and AIXTHREAD_MUTEX_DEBUG must
be set to OFF.
The Linux versions of the distributed-memory parallel
unsymmetric solver can use only one thread per process because the
MPICH/MPI implementations on these systems are not thread-safe.
Therefore, the WSETMAXTHRDS routine must be used to set the number of
threads to 1.
Linux on IA64, HP-UX on PA-RISC, Tru64 on HP/Compaq/DEC Alpha, and SunOS
on Opteron are not supported any more. Older versions of the
libraries for these platforms can be requested by e-mail. The latest version
of WSMP can also be built for these platforms if access to the
hardware can be arranged.
Example Programs
memchk.c (to check the amount of stack and heap space available to you)
triplet2cs.c (to convert a sparse matrix from triplet to CSC/CSR format)
The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.