Модель для многопотоковых задач

Общие принципы, проектирование, модуляризация, темплейты и шаблоны
Ответить
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Модель для многопотоковых задач

Сообщение Михаил23 »

Надо сделать программу которая бы по максимуму будет использовать возможность распараллеливания вычислений. Т.е. например у меня есть заранее неизвестное кол-во задач которые будут реализовываться на Mathscript и они могут работать одновременно(есть например папка в которую пользователь кидает текстовые файлы с задачей и они рассчитываются с какой то периодичностью). Какую структуру лучше выбрать? Есть ли возможность не ограничиваться при программировании например 4 потоками, а определять их по кол-ву файлов в папке(ну и чтоб это работало в exe)? Есть ли вообще это делать или задаться например 6 потоками и на этом "успокоится"? Во общем любые идеи в этом направлении.
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Модель для многопотоковых задач

Сообщение FireFly »

Михаил23 писал(а):Надо сделать программу которая бы по максимуму будет использовать возможность распараллеливания вычислений. Т.е. например у меня есть заранее неизвестное кол-во задач которые будут реализовываться на Mathscript и они могут работать одновременно(есть например папка в которую пользователь кидает текстовые файлы с задачей и они рассчитываются с какой то периодичностью). Какую структуру лучше выбрать? Есть ли возможность не ограничиваться при программировании например 4 потоками, а определять их по кол-ву файлов в папке(ну и чтоб это работало в exe)? Есть ли вообще это делать или задаться например 6 потоками и на этом "успокоится"? Во общем любые идеи в этом направлении.
Сделать чтобы параллельные потоки появлялись в любом количестве по какому-то условию можно и довольно легко. Посмотри проект чат. Там на сервере для каждого подключающегося клиента запускается параллельный процесс. Когда клиент отключается - процесс заканчивает работу. Сервер хранит все живые в нынешний момент процессы в массиве. По этому массиву может искать нужный процесс и общаться с ним.
Я или Eugen Graf можем ответить на твои вопросы и объяснить если что-то будет непонятно.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Аватара пользователя
Михаил23
adviser
adviser
Сообщения: 219
Зарегистрирован: 24 ноя 2008, 17:58
Версия LabVIEW: 2009
Откуда: Москва

Re: Модель для многопотоковых задач

Сообщение Михаил23 »

Сильно ли это увеличивает производительность приложения и экономит ресурсы железа?
Аватара пользователя
FireFly

Activity Black
expert
expert
Сообщения: 1321
Зарегистрирован: 25 апр 2009, 08:58
Награды: 2
Версия LabVIEW: 2014
Откуда: Санкт-Петербург
Поблагодарили: 1 раз

Re: Модель для многопотоковых задач

Сообщение FireFly »

Михаил23 писал(а):Сильно ли это увеличивает производительность приложения и экономит ресурсы железа?
Вызов VI с помощью Call By Reference Node, а не из блокдиаграммы несколько дольше, но т.к. вызывать данную VI вы будите всего один раз для каждого файла - на эту потерю времени можно забить.
Зато нефиксированное количество параллельных процессов очень развяжет вам руки.
Иногда лучше молчать и слыть идиотом, чем заговорить и развеять все сомнения.
Ответить
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Модели программирования»