Как правильно использовать пакет MUMPS с уровня MATLAB? - PullRequest
0 голосов
/ 04 февраля 2019

Я хочу использовать пакет MUMPS с уровня MATLAB.MUMPS использует пакеты LAPACK и BLAS.Моя главная проблема в том, что я получил ошибку нарушения сегментации.Пакет MUMPS работает в основном с 32-битными целыми числами.Чтобы не получить ошибку нарушения сегментации, я должен использовать внешний пакет BLAS.BLAS, реализованный в MATLAB, работает с 64-битными целыми числами.

Чтобы проверить, какие пакеты загружает MATLAB, я использую:

export BLAS_VERBOSITY=1
export LAPACK_VERBOSITY=1

Я пытаюсь заставить MATLAB использовать внешний BLAS, применяяпеременная окружения BLAS_VERSION с уровня консоли:

export BLAS_VERSION="/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so"
export LAPACK_VERSION="/net/people/plgzgoryk/luke/packages/lapack-3.8.0/liblapack.so"

или с уровня MATLAB:

setenv('BLAS_VERSION','/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so')
setenv('LAPACK_VERSION','/net/people/plgzgoryk/luke/packages/lapack-3.8.0/liblapack.so')

Но когда я пытаюсь загрузить BLAS этими двумя способами, я получаю ошибку «недопустимый заголовок ELF»:

cpu_id: x86 Family 6 Model 63 Stepping 2, GenuineIntel
BLAS: trying environment...
BLAS: loading /net/people/plgzgoryk/luke/packages/alapack/lapack-3.8.0/librefblas.so
BLAS: unloading libraries
BLAS loading error:
/net/people/plgzgoryk/luke/packages/alapack/lapack-3.8.0/librefblas.so: invalid ELF header

Кроме того, я пытался использовать переменную среды LD_PRELOAD, но мне не удалось.Мы можем найти информацию об этой проблеме здесь:

https://listes.ens -lyon.fr / sympa / arc / mumps-users / 2014-10 / msg00005.html

а здесь

Использование внешних библиотек BLAS и LAPACK в мекс-файле MATLAB

Когда я пытаюсь использовать LD_PRELOAD:

export LD_PRELOAD=/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so

и яЯ нахожусь в MATLAB я получаю сообщение об ошибке:

ERROR: ld.so: object '/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so' from LD_PRELOAD cannot be preloaded: ignored.

Другая переменная среды LD_LIBRARY_PATH также не работает:

export LD_LIBRARY_PATH="/net/people/plgzgoryk/luke/packages/lapack-3.8.0/librefblas.so"

После использования этой переменной ничего не произошло.Я имею в виду, что MATLAB использовал свой собственный BLAS:

cpu_id: x86 Family 6 Model 63 Stepping 2, GenuineIntel
BLAS: trying spec file...
BLAS: loading mkl.so
BLAS: loaded mkl.so@0x2b213b28c160
BLAS: mkl.so is not a compatibility layer.
BLAS: loading mklcompat.so
BLAS: loaded mklcompat.so@0x2b213b28ed70
BLAS: initializing compatibility layer mklcompat.so

Не могли бы вы помочь мне?Что я делаю неправильно?Буду благодарен за любую помощь.Я использую машину с 64-битным Centos 7, Matlab 2018b и GCC версии 4.8.5-28.

...