bytedeco / javacpp

The missing bridge between Java and native C++
Other
4.49k stars 583 forks source link

Question on java cpp connection #513

Open lion241 opened 3 years ago

lion241 commented 3 years ago

Hi ,

I am interested to to know if there is a bridge inside javacpp towards Lapack / scaLapack and BLAS. In addition if you do, can i modify the installation of scalapack as mentioned here: https://github.com/eth-cscs/COSMA#using-cosma-in-30-seconds

Then make sure that javacpp wrapper will use the modified version instead ? Many thanks.

saudet commented 3 years ago

LAPACK is included in OpenBLAS, so it shouldn't be too hard to modify its presets to use ScaLAPACK. Please let me know if you encounter any issues though. Thanks!

lion241 commented 3 years ago

When installing ScaLAPACK, I got this error:

igsum2d_.c:153:7: error: implicit declaration of function 'BI_imvcopy' is invalid in C99 [-Werror,-Wimplicit-function-declaration] BIimvcopy(Mpval(m), Mpval(n), A, tlda, bp->Buff); ^ igsum2d.c:166:6: error: implicit declaration of function 'BI_ivmcopy' is invalid in C99 [-Werror,-Wimplicit-function-declaration] BIivmcopy(Mpval(m), Mpval(n), A, tlda, bp2->Buff); ^ igsum2d.c:172:3: error: implicit declaration of function 'BI_ivmcopy' is invalid in C99 [-Werror,-Wimplicit-function-declaration] BIivmcopy(Mpval(m), Mpval(n), A, tlda, bp2->Buff); ^ igsum2d.c:226:10: error: implicit declaration of function 'BI_ivmcopy' is invalid in C99 [-Werror,-Wimplicit-function-declaration] BIivmcopy(Mpval(m), Mpval(n), A, tlda, bp->Buff); ^ 4 errors generated. make[2]: *** [igsum2d.o] Error 1 make[1]: [lib] Error 2 make: [blacslib] Error 2

I installed openblas first and tried to add the openblas directory in SLmake .

One more question. I want to use this in scala (sbt) can you point me to the respective documentation ? i have seen somethings in your repo but it has been mostly about Java (only a little about scala).

Many thanks.

saudet commented 3 years ago

Those look like build errors from ScaLAPACK. Please try to contact the authors of ScaLAPACK about this.

As for sbt, there's nothing special that we need to do, we just need to add the same dependencies as with Maven, for example: https://github.com/bytedeco/sample-projects/blob/master/tesseract-ocr/

@jpsacha also maintains https://github.com/bytedeco/javacv-examples with sbt.

And to simplify the process further @lloydmeta has contributed https://github.com/bytedeco/sbt-javacpp/.