# Reimplementierung LAPACK und BLAS für Java verfügbar?



## Bergtroll (18. Jul 2010)

Weiß jemand ob es eine Java Implementierung für BLAS und LAPACK gibt? Ich habe bisher nur Fortran Wrapper und JBlas gefunden.


----------



## Marco13 (18. Jul 2010)

In dieser Liste sollte doch noch mehr zu finden sein?! Ansonten natürlich noch jcuda.org - JCublas wenn's auf der Grafikkarte sein soll


----------



## Bergtroll (18. Jul 2010)

Unglücklicherweise hat meine CUDA fähige Nvidia Karte vor ein paar Tagen den Geist aufgegeben und ich habe jetzt ne ATI bestellt. Da bleibt wohl nur auf OpenCL warten, da es bisher scheinbar noch keine GPGPU Umsetzung auf reinem OpenGL gibt und ACML nicht Plattformunabhängig ist :-(


----------



## Bergtroll (18. Jul 2010)

Muaaah.... die Fortran-to-Java Port Javadoc ist soooo hässlich *mal bisschen durch die Gegend complain*...


----------



## Bergtroll (18. Jul 2010)

So ich habe jetzt noch was interessantes gefunden, das auf den Namen SuanShu hört. Vielleicht könnten wir ja mal sammeln, was sich seit den Tagen des JavaGrande Forums in Sachen Java für High Performance Computing getan hat. Ich fände es jedenfalls interessant...

Nachtrag:
Die Lizenz von SuanShu ist dafür leider restriktiv :-(


----------



## Marco13 (18. Jul 2010)

Zumindest für C++ gibt's schonmal ViennaCL - Natürlich hat es mir gleich in den Fingern gejuckt, dort ein "J" vorne dran zu schreiben (oder vielleicht lieber JSalzburgCL?), aber - im Moment bin ich in der Hinsicht ausgelastet...

Diese Fortran-Javadoc ist normal - wer setzt sich denn auch hin und bastelt für so pragmatisch-tabellarische Information irgendwelches webseitendesignpreisverdächtiges HTML zurecht  ?

SuanShu sieht einerseits ganz interessant aus (Interessant, weil ich neulich mal angesetzt habe, zu überlegen, sowas ähnliches aufzusetzen (sonst wird einem ja langweilig  )). Allerdings sind da die BLAS-Funktionen nicht so... offensichtlich und "original-BLAS-nah" drin. Und letztendlich erscheint es beim ersten Überfliegen der API wie eine Mischung aus Colt, Apache Commons Math und JScience. Eigentlich wäre es schön, sowas mal "ganzheitlich" und auf breiter Basis aufzuziehen (und ich werde mir jetzt mal nicht anmaßen, beurteilen zu können, ob denen das wirklich gelungen ist) aber du hast Recht, was die Lizenz angeht: Da sagt man als Open-Source-Verwöhnter Javaner doch tendenziell: ".. na dann behaltet sie halt, eure Bibliothek...." ueh: 

"JavaGrande Forum" - das war wohl noch vor der Zeit, wo ich solche Sachen bewußt mitverfolgt habe... :rtfm:


----------



## Bergtroll (19. Jul 2010)

> Und letztendlich erscheint es beim ersten Überfliegen der API wie eine Mischung aus Colt, Apache Commons Math und JScience.



Lol, da bist du mir zuvorgekommen, wollte gerade genau diese drei "Entdeckungen" posten. Aber Colt liefert zumindest schonmal nen BLAS Interface in seinem Lineare Algebra Package. Eine Simple Numeric Calculations Facade wäre doch ganz nett... ???:L


----------



## Marco13 (19. Jul 2010)

Was genau du dir darunter vorstellst, ist mir nicht 100% klar. Eine allgemeine Facade für BLAS, wo man einfach die Implementierung austauschen kann wäre natürlich toll, scheitert aber erstmal ganz schnell an der ganz banalen Tatsache, dass es einmal
double ddot(DoubleMatrix1D x, DoubleMatrix1D y) 
dann mal
double ddot(DenseMatrix1D x, DenseMatrix1D y) 
vielleicht mal
double ddot(Matrix1D<Double> x, Matrix1D<Double> y) 
und schließlich auch mal 
double ddot(double x[], double y[]) 
heißt... Wenn man dort ggf. bei jeder Operation erst wild-wüst kopieren und konvertieren muss, wäre es mit der Performance im schlechtesten Fall wohl nicht mehr so weit her....


----------



## Bergtroll (19. Jul 2010)

nee, war auch nicht ganz ernst gemeint und eher eine Anspielung auf die SLF4J, weils ja auch nie zu nem einheitlichen Logging Framework gelangt hat. Ist halt sehr ärgerlich, dass schöne Konzepte auf alle drei genannten APIs verteilt sind. Bei JScience gefällt mir auf den ersten Blick z.B., dass die Interfaces ordentlich auf mathematische Begriffe abgebildet sind.


----------



## Marco13 (19. Jul 2010)

Hmja, JScience hatte ich erwähnt, weil ich genau das bei SuanShu auch gesehen hatte: Monoid, AbelianGroup, Ring, Field... Wie gesagt: Das SuanShu umfasst wohl noch mehr, aber so gesehen evtl(!). nichts, was nicht in einer dieser drei Bibliotheken zu finden wäre....


----------



## Bergtroll (25. Jul 2010)

Um die Liste fortzuführen, auf dieser Seite die ich gerade zufällig gefunden habe, gibts auch nochn paar Verweise:
UJMP  Universal Java Matrix Package » Benchmark


----------

