Watson Sparse Matrix Package (WSMP) - overview

Note: Please use the "WSMP temporary license files" tab above to download just the license files without upgrading the software.

Watson Sparse Matrix Package (WSMP) is a collection of algorithms for efficiently solving large sparse systems of linear equations. This high-performance, robust, and easy-to-use software can be used as a serial package, or in a shared-memory multiprocessor environment, or as a scalable parallel solver in a message-passing environment, where each process can be either serial or multithreaded.

WSMP Version 16.12.01

What's New and What's Coming Up

  • Versions 15+ improve the iterative solver for unsymmetric systems.
  • Versions 15+ include GPU-accelerated libraries; please send e-mail to (wsmp |AT| us |DOT| ibm |DOT| com) for details.
  • If you need WSMP and PWSMP libraries for a platform-compiler combination missing here, please send e-mail to (wsmp |AT| us |DOT| ibm |DOT| com).

Software Documentation

Related Papers and Reports

Related Tutorials

Known Bugs and Issues

  • The compiler optimization in certain parts of WSMP had to be turned down in the libraries compiled using Intel compilers due to compiler bugs. This is likely to adversely impact performance. Please send e-mail to (wsmp |AT| us |DOT| ibm |DOT| com) for custom compiled libraries for your application if speed is critical.
  • The Linux libraries included in the standard distribution below may not work due to compiler, glibc, or MPI incompatibility. Please send e-mail to (wsmp |AT| us |DOT| ibm |DOT| com) if you are unable to run the example programs.
  • MPI_THREAD_MULTIPLE thread support must be requested from mpi_init_thread for the distributed-memory unsymmetric solver.
  • 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.
  • 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.
  • On Linux, setting the environment variables MALLOC_TRIM_THRESHOLD_ and MALLOC_MMAP_MAX_ to -1 and 0, respectively, yields the best performance, especially for the unsymmetric and symmetric indefinite solvers. However, setting MALLOC_TRIM_THRESHOLD_ to -1 can lead to memory problems when multiple processes are running on the same node/machine. In such cases, a reasonable value between 1000000 and 100000000 could be used.
  • 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.

Example Programs

Software Download

E-mail contact for WSMP: wsmp |AT| us |DOT| ibm |DOT| com