Сбой после инициализации ZookeeperInstance в программе Java MPI Accumulo
Я пытаюсь создать Linux MPI Java-приложение для Accumulo - пересобрать OpenMPI самостоятельно, чтобы получить libmpi_java и mpi.jar. Аппаратное обеспечение Pretty std x86 /Centos. Я считаю, что основные настройки и настройки для Accumulo/Zookeeper хороши. Вот несколько фактов:
- Я могу нормально запустить сканирование Accumulo, используя мою программу на Java. Он использует код, как показано в примерах клиента Accumulo, начиная с
ZooKeeperInstance()
чтобы позже создать BatchScanner. - Я могу запустить это же приложение (без вызовов MPI), используя mpirun параллельно. Здесь mpirun просто порождает копии, но, возможно, это показывает, что среда на вычислительных узлах / процессорах настроена нормально для mpirun?
- Как только я добавлю либо
MPI.Init
или жеMPI.InitThread
в приложение, я получаю ошибку Сег 11 доZooKeeperInstance()
завершает (например, в этом методе). Это происходит, даже если я ограничу код сканера одним процессором. Последнее сообщение показывает, что соединение сеанса zookeeper установлено. Просматривая исходный код Accumulo, я вижу, что одним из следующих вызовов является публикация события - возможно, там, где происходит сбой. - Я получаю дамп ядра, но все мои попытки использования jstack, чтобы увидеть, где происходит сбой, сообщают о невозможности соединения с ядром. Я использовал gdb, чтобы посмотреть, какой exe-файл использовался для дампа ядра, и посмотреть,
/usr/bin/java
, но тот или иной exe-файл, отслеженный в символьных ссылках, приводит к невозможности подключения jstack. - Я построил MPI, чтобы убедиться, что включены как Java, так и многопоточность, так как я знаю, что код Accumulo захочет использовать потоки. Перепробовал многое другое, настраивая размер кучи в Java, пробуя все параметры в
MPI.InitThread()
, так далее.
Я думаю, что застрял сейчас и не вижу, куда идти дальше - любая помощь очень ценится. Я заинтересован в использовании Java, поскольку это является родным для Accumulo, и в противном случае мне нужно будет использовать прокси-клиент. Благодарю.