Workspace Digital Awards 2025 — успейте номинировать кейсы по льготной цене до 1 декабря. Принять участие!
НТЦ Энжитек
JMP: явная многопоточность на Java и управление кластером
НТЦ Энжитек
#Программирование#Разработка программного обеспечения#Администрирование серверов

JMP: явная многопоточность на Java и управление кластером

171 
НТЦ Энжитек
НТЦ Энжитек Россия, Москва
Поделиться:
JMP: явная многопоточность на Java и управление кластером
Клиент

производство

Сфера

Программное обеспечение

Регион

Армения, Ереван

Сдано

Декабрь 2023

Задача

В отличие от создания нитей (threads), что входит в функционал Java Core, Java не имеет поддержки явного multiprocessing. Разработанная нами библиотека org.engitex.JMP (Java MultiProcessing) нацелена на предоставление такого функционала пользователю.

Кроме того, данный функционал используется системой управления Ява-кластером (cluster management), которая также входит в библиотеку. Основная задача системы - оптимальное распределение задач (1 задача = 1 процесс) между доступными нодами.

Решение

Разработанное решение использует:

- Java RMI для общения между процессом и нодой, на которой процесс запущен, а также между нодами;

- Windows PowerShell для оценки системных ресурсов и работой с запущенными процессами на машине.

Синтаксис вызова/создания нового процесса максимально приближен к созданию новой нити (thread) на Java.

Результат

1. Создается объект rw класса RunnableWrapper, который включает в себя ссылку на задачу, которая будет запущена как отдельный процесс.

2. Конструктор: ProcessInvocator pi = new ProcessInvocator(RunnableWrapper rw, String ip_string_or_null_if_local, char[] affinityCPU);

3. Запуск процесса: pi.start();

https://sourceforge.net/p/multiprocessing/

Стек технологий


Над проектом работали:


Выскажите мнение
Авторизуйтесь, чтобы добавить свой комментарий.
оставить заявку

Хотите заказать похожий проект?

НТЦ Энжитек с удовольствием обсудит вашу задачу

Оставить заявку