Библиотеки параллельной обработки Python

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

Править: В частности, я записал средство моделирования, которое берет в нескольких исходных данных и обрабатывает вещи некоторое время. Я должен собрать достаточно образцов из моделирования, чтобы оценить, что среднее в пользователе указало доверительный интервал. Для ускорения вещей я хочу смочь выполнить моделирования во многих различных системах, каждая из которых сообщают серверу в некотором интервале с образцами, которые они собрали. Сервер затем вычисляет доверительный интервал и определяет, должен ли клиентский процесс продолжиться. После того, как достаточно образцов было собрано, сервер завершает все клиентские моделирования, реконфигурировал моделирование на основе прошлых результатов и повторяет процессы.

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

5
задан Anony-Mousse 15 January 2012 в 13:12
поделиться

4 ответа

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

2
ответ дан 15 December 2019 в 06:27
поделиться

Существует также два разных обертка Python по карте / снижает рамочный капитал Hadoop:

http://code.google.com/p/happy/

http://wiki.github.com/klbostee / dumbo

Карта / Уменьшение - это хороший узор разработки с большим количеством рецептов для решения распространенных моделей проблем.

Если у вас нет кластера, сам Hadoop сам приятно, потому что он имеет полное планирование работы, автоматическое распространение данных в кластере (I.E. HDF) и т. Д.

1
ответ дан 15 December 2019 в 06:27
поделиться

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

0
ответ дан 15 December 2019 в 06:27
поделиться

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

Узнайте, что можно получить, если попробовать создать свой старый школьный список:

public class ListItem<T>
{
    public ListItem Parent;
    public T Value;

    public ListItem(ListItem<T> parent, T item)
    {
        this.Parent = parent;
        this.Value = item;
    }
}

Я писал почти этот точный код раньше (только мой предмет был int) и запускать его на машине с 32 процессорами и 128 ГБ баранки, он всегда уныло в одном размере независимо от того, что, и всегда было что-то связано с Int32.MaxValue, надежда, что помогает.

-121--2586078-

XML с новыми строками и без них и другие пробелы не считаются одинаковыми с помощью «match». При использовании scala.xml.Utility.trim можно удалить пробел. (Вы, вероятно, хотите обрезать и ваш ввод, и то, что дает вам сервер, если вы не уверены, что сервер не отправит вам пробел.)

-121--4407700-

Учитывая, что вы отметили свой вопрос «научные вычисления», и упомянули кластер, какая-то MPI обертка кажется очевидным выбором, если целью является разработка параллельных приложений, как можно догадаться из названия. Затем в тексте вопроса предлагается разработать планировщик партий. Так что я не знаю, какой вопрос ты задаешь.

0
ответ дан 15 December 2019 в 06:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: