On 09/30/2013 11:36 AM, Jed Brown wrote: > Joon Hee Choi <[email protected]> writes: > >> Hello Hong, >> >> I tried to get Elemental but it does not support 64-bit integer >> now. I need to use 64-bit integer because the matrix I am using >> is very large. I need just MatMatMult() for MPIDENSE matrices, >> but it also didn't support MPIDENSE. Is there any method to >> multiply MPIDENSE and MPIDENSE? > > I take it that you need 64-bit indices because your problems are > that big already, not that you're worried they will eventually be > that large? > > I assume Jack will reply to your other message which was > cross-posted to [email protected], but I'm Cc'ing him here as > well. >
It hasn't yet been rigorously tested, but support for 64-bit integers should be possible by simply changing the typedefs for elem::Int and elem::Unsigned from 'int' -> 'long long int' and 'unsigned' to 'long long unsigned'. These are guaranteed to be 64-bit by C++11. https://github.com/elemental/Elemental/blob/f288c2b50b0ad2c95c99591918d8fa27990167d2/include/elemental/core/types_decl.hpp#L17 Elemental's Python interface does not yet support this modification, but I would expect it to be straightforward to extend the PETSc interface to do so. I don't believe that this change made it into version 0.81 of Elemental, but 0.82 will be released as soon as I finish rounding the edges of a new Bunch-Kaufman implementation, which would also be good to expose an interface for in PETSc. Jack
