Replies: 3 comments
|
Unfortunately I would expect memory leaks from any BLAS function called by the LAPACK routine, if a thread is terminated abruptly. And there is nothing in the BLAS or LAPACK API that would permit sending an orderly stop command - killing individual threads could potentially cause a lockup in a multithreaded OpenBLAS. |
|
Perhaps it would be possible to add an extension named something like openblas_cancel that would invoke pthread_cancel on all running threads and subsequently clean them up via pthread_join much like the "normal" shutdown mechanism. Obviously that would not be portable between BLAS implementations (Idk if that would be an issue to you). |
|
That would be a very welcome addition I think. Am I correct in assuming that this would work on Windows as well? (I'm seeing pthread symbols in the DLL). |
Uh oh!
There was an error while loading. Please reload this page.
We're running calculations with LAPACK from OpenBLAS that need be cancel-able at any time. I'm looking to find out if a thread can be aborted safely while running an OpenBLAS routine, or that OpenBLAS may have memory allocated that leaks when that happens.
Assume that any working arrays passed to LAPACK from our code can get freed in a clean-up routine. I'm asking whether OpenBLAS allocates and frees additional memory inside the routine that cannot be freed in a clean-up routine in our code.
All reactions