Существует ли библиотека Java DRMAA, которая работает с Torque / PBS? - PullRequest
4 голосов
/ 26 апреля 2010

Кто-нибудь знает реализацию Java DRMAA-API на Java, которая, как известно, работает с программным обеспечением кластера PBS / Torque?

Предпосылки этого: я хотел бы отправить задания во вновь настроенный Linux-кластер из Java с использованием API, совместимого с DRMAA. Кластер управляется PBS / Torque . Torque включает библиотеку PBS DRMAA 1.0 для Torque / PBS, которая содержит привязку DRMA-C и предоставляется в двоичных файлах libdrmaa.so и .a. Я знаю, что движок Sun grid включает в себя drmaa.jar, предоставляющий API-интерфейс Java-DRMAA. На самом деле я решил использовать SGE, но было решено сначала попробовать PBS.

Теория, лежащая в основе этого решения, была:
«DRMAA - это стандарт, и поэтому для API Java требуется только совместимое со стандартом связывание drmaa-c». Однако я не смог найти такого «общего API-интерфейса DRMAA-C-java» и теперь предполагаю, что это предположение неверно и что библиотеки Java являются специфичными для движка.

Edit: Я просто экспериментировал с drmaa.jar из пакета движка sun grid и пытался использовать его с pbs libdrmaa.so. Неудивительно, что это не удалось (ошибка ссылки JNI неудовлетворенная).

Вывод: так не работает! После некоторого поиска я вижу только эти несколько вариантов:

  1. Установите GridWay поверх Globus Инструментарий. Установлен поверх PBS, GridWay заявляет о предоставлении DRMAA в Джава. Выглядит слишком сложным для моего установка.
  2. Лом DRMAA, отправить в PBS вызов системной команды qsub, qstat, и т.д. с Java. Просто но не так отлично.
  3. Реализовать привязку drmaa самостоятельно. Слишком сложный ...

  4. Переключиться на Grid Engine. GE в моем мнение превосходит PBS в отношении языковых привязок.

Я предпочитаю вариант 2. или 4. Любые рекомендации?

Ответы [ 3 ]

3 голосов
/ 29 апреля 2010

После еще нескольких поисков, похоже, я должен сам что-то написать. Кажется, что пока нет оптимального ответа, но он может послужить предупреждением для тех, кто пытается сделать то же самое.

Лучшее место, чтобы задать эти вопросы, возможно, список рассылки Torque: www.clusterresources.com/resources/mailing-lists.php

Прежде всего, причина, по которой вы не можете просто использовать любую библиотеку DRMAA-Java и использовать ее с любой реализацией DRMAA-C: DRMAA описывает интерфейс управления ресурсами, а не то, как он реализован. Поставщик может использовать реализацию DRMAA-C и использовать только эти функции, но они не обязаны. Он может использовать все, что есть в двигателе. Итак, одно важное сообщение: если вам нужны определенные языковые привязки, убедитесь, что они есть для всех требуемых языков.

Относительно упомянутых опций:

  1. Использование GridWay / Globus Toolkit: http://www.gridway.org/doku.php?id=start Преимущество: Gridway - это мета-планировщик, который поддерживает многие системы управления ресурсами (SGE, PBS, ...). Возможно, единственный способ получить интерфейс DRMAA для работы с PBS на данный момент. Недостаток: похоже на раздувание слоев и сложности. Не имею опыта с этим.

  2. Использование системных команд, qsub, qstat, qdel. Преимущество: быстрый взлом Недостатки: грязный хак, необходимость реализации анализаторов для вывода, может не заметить, если что-то пойдет не так, передавать сообщения от stdin / stdout / stderr, не переносимые

  3. Используя JNI, должно быть возможно создать привязку для каждой c-функции в drmaa.c Преимущество: обеспечит полную реализацию drmaa (надеюсь) Недостатки: включает в себя скомпилированный код, много ручного переноса C-функций (возможно, это может быть автоматизировано)

  4. Переключиться на другой движок сетки. Возможно, мы должны были сделать этот анализ раньше. Однако у нас уже есть еще один кластер Torque, и с этим есть опыт. Работа двух создаст более разнородную инфраструктуру.

  5. Изменение существующей библиотеки drmaa от другого поставщика. Не знаю, возможно ли это ... Мы тоже разберемся с этим.

2 голосов
/ 07 июня 2013

У меня тоже была эта проблема. Это проект по созданию объектно-ориентированной привязки C ++ и Java DRMAA для PBS / Torque.

Недостатком является то, что вы должны иметь возможность загружать библиотеку, созданную из кода C ++, поэтому это не реализация "чистой Java", которая может распространяться только в виде файла .jar, ожидая, что конечный пользователь предоставит " libdrmaa.so "сами.

Для чего это стоит, вот оно: https://github.com/bryan-lunt/PBSJavaDRMAA/

1 голос
/ 02 сентября 2010

Вы когда-нибудь решали, что с этим делать? Удалось ли вам заставить привязки Java DRMAA работать с Torque / PBS? Я хочу, чтобы какой-нибудь код Java DRMAA работал в системе Torque / PBS, и если вы уже проделали тяжелую работу, я бы хотел украсть ее.

Однако, если вы этого не сделаете, сделать некоторые привязки Java не так уж и плохо, и я сделаю это, если никто другой этого не сделает. Несколько лет назад я успешно изменил привязки DRMAA Java для SGE для работы с новой реализацией DRMAA для Xgrid (в настоящее время устаревшая, но, возможно, скоро будет восстановлена).

Я даже написал краткое сообщение в блоге о своем опыте (включает ссылку на общие инструкции):

http://edbaskerville.com/2006/07/11/java-bindings-working/

...