Für eine Analyse muss ich ein großes dünnes System in der Form Ax = b lösen. A hat die Dimension 3Mx3M und ist positiv definit.Multicore-Lösung von dünnen Matrizen in R
Für jetzt verwende ich das "Matrix" -Paket, das Unterstützung für dünn besetzte Matrizen und einen funktionierenden Solver bietet. Ich schaffe es, mein Problem in etwa 40 Sekunden zu lösen. Derzeit lachen mich jedoch 31 der 32 Kerne meines Servers, weil ich nur einen einzigen Kern für meine Berechnungen verwenden kann.
Ich habe versucht, eine foreach Routine, aber das ist sehr RAM/Overhead intensiv. Ich würde lieber etwas wie einen BLAS/LAPACK-Löser mit integrierter Multicore-Unterstützung verwenden. Microsoft R Open schien vielversprechend, unterstützt aber nur BLAS/LAPACK für dichte Matrizen. Ich habe ausgiebig gegoogelt, ohne Erfolg.
Ist ein zugänglicher Multicore-Solver zur Lösung von dünn besetzten Matrizen in R verfügbar?
Jede Hilfe wird sehr geschätzt.
Nicht R, aber einen Blick auf der PETSc Bibliothek nehmen. Es beruht auf MPI für Parallelität und es gibt eine große Anzahl von [Lösern und Vorkonditionierern] (http://www.mcs.anl.gov/petsc/documentation/linearsolvertable.html), die für Sparce-positive-definitive Matrizen (aij/baij) verfügbar sind. . Oder Sie verwenden einen parallelen direkten Löser wie MUMPS. Ein Beispiel finden Sie [http://www.nersc.gov/users/software/programming-libraries/math-libraries/petsc/c-example-mumps/]. Aber es gibt eine Notwendigkeit, eine Schnittstelle zu schreiben, um die c-Funktion von R anzurufen. – francis
Beachten Sie auch, dass in vielen Fällen lineare Algebra auf dünn besetzten Matrizen speichergebunden ist, nicht CPU-gebunden ... –
Sie haben Recht, Dmitriy Selivanov. Meine Maschine hat jedoch 250 + GB Arbeitsspeicher, daher denke ich, Speicher ist nicht der Flaschenhals in meinen Berechnungen. Meine dünn besetzten Matrizen liegen jeweils in der Größenordnung von 800 MB. – WvWestering