Sparse Matrix

Hi guys,
I need a library that can help me to manage Sparse Matrix. I must work with matrix 2^22 x 2^22.
I have these constrains:
- Windows
- Visual Studio

thx

bye bye
2^22 x 2^22 matrix means 2^44 elements. If you want them to be floats, that means 2^46 bytes = 64 terabytes.
It shouldn't be very hard to write functions for matrices larger than RAM, but this is a little extreme..
in fact I use spase matrix so i can manage this amount of data. Nobody can help me to find a library that manage sparse matrix ?
closed account (oz10RXSz)
You can use sparselib++: http://math.nist.gov/sparselib++/

However, if you need something powerful, well-documented and with lots of algorithms, you'd better change language and get into:

1. Colt - http://acs.lbl.gov/software/colt/
2. UJMP - http://www.ujmp.org/

Last edited on
I try to find information about sparselib++ but I find only realization under Linux and not under Windows (VS8).
Do you kwon how can I use this library under windows ?
closed account (oz10RXSz)
Unfortunately - no. But you can try to compile sources by VS8. I don't think there should be any porblem with that.

BTW: Why not Java? It has excellent sparse matrix libraries that run on Windows.
Last edited on
Because I need to put this code into malab code, but I need perfromanceof C/C++
closed account (oz10RXSz)
It is much easier to integrate MATLAB with Java than with C++.
The libraries, I gave you links for, are optimised for performance.

The guys at CERN do pretty much high performance computing stuff and they are not crazy. No need to use C++ __only__ for performance reasons. Probably this is the reason you cannot find good libraries for sparse matrix for C++. Many scientists that do HPC professionaly (and would be able to write such a library) switched from C++ to Java, Fortress, Erlang, Scala etc. These languages are fast enough and do not have problems with pointer aliasing or multithreading - things that make getting top-notch performance in C/C++ difficult (albeit, not impossible).

Scientific and technical computing, as, for example, carried out at CERN, is characterized by demanding problem sizes and a need for high performance at reasonably small memory footprint. There is a perception by many that the Java language is unsuited for such work. However, recent trends in its evolution suggest that it may soon be a major player in performance sensitive scientific and technical computing. For example, IBM Watson's Ninja project showed that Java can indeed perform BLAS matrix computations up to 90% as fast as optimized Fortran.


... and optimized Fortran is faster than C++. ;)
Last edited on
I'm sure that exist these solutions but I don't know Java ^_^
closed account (oz10RXSz)
If you know C++, you could learn basic Java in a week or less. It is much simpler than C++.
Topic archived. No new replies allowed.