Использование параллельной библиотеки задач с несколькими компьютерами - PullRequest
8 голосов
/ 05 октября 2010

Есть ли способ использовать Task Parallel Library в мультикомпьютерных сценариях?

Я имею в виду, если у меня огромное количество задач, могу ли я запланировать это по локальной сети на количество серверов?

Ответы [ 3 ]

5 голосов
/ 05 октября 2010

TPL ориентирован на один компьютер, сценарии с несколькими ядрами процессора.

Если вы хотите работать в нескольких системах, вам потребуется использовать программное обеспечение для кластеризации определенного типа, например MPI (можно использовать в .NET напрямую через MPI.NET ) или один из множества вариантов, основанных на Windows HPC .

При этом TPL оченьполезно на каждом из узлов кластера.Его можно использовать для правильного масштабирования каждого узла кластера по всем ядрам, доступным на этом узле.

2 голосов
/ 05 октября 2010

Настройки по умолчанию для TPL - это планирование задач в пуле потоков .NET, и поэтому оно направлено на параллелизм внутри одного процесса.Однако вы можете реализовать свой собственный TaskScheduler, который управляет тем, как на самом деле выполняются задачи, так что, по крайней мере, теоретически вы можете выйти за пределы текущей области.Хотя это можно сделать, я уверен, что есть лучшие варианты, как отмечают Рид Копси и Крис Тейлор.

2 голосов
/ 05 октября 2010

Никакой TPL не фокусируется на локальных потоках внутри процесса.Тем не менее, существуют существующие проекты, которые занимаются этой областью.

http://research.microsoft.com/en-us/projects/dryad/

И вы можете взглянуть на ответы на этот вопрос SO

Любой товармодели распределенных агентов / сервисов для .NET?

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