Вопрос

Я хотел бы знать, есть ли способ создать потоки на других узлах, не запуская процесс на узлах. Например: - допустим, у меня есть кластер из 5 узлов. Я запускаю приложение на узле 1. Это создает 5 потоков. Я хочу, чтобы потоки создавались не в одной и той же системе, а в кластере, скажем, 1 узел 1 тип потока. Есть ли способ, которым это можно сделать, или это больше зависит от планировщика нагрузки и делает ли openMP что-то подобное?

если в вопросе есть двусмысленность, пожалуйста, дайте мне знать, я уточню.

Это было полезно?

Решение

Короткий ответ - не просто. Потоки совместно используют адресное пространство процессов, поэтому их крайне трудно переместить по узлам кластера. И, если это возможно (существуют системы, которые поддерживают это), то получение их для поддержания согласованного состояния приводит к большим накладным расходам синхронизации и связи, которые влияют на производительность.

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

Другие советы

как правило, оставляйте потоки для vm или engine, чтобы избежать очень инертных блокировок, фокусируйте приложение или транспорт, если он есть, создайте время (эвристика 200 гц = 5 мс), если 2, перекрасьте, хороший шаблон: eventdrive

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top