Для раскрытия данного вопроса рассматриваем среду MatLabR2011b в содержании информационной и дидактической системы, использующаяся в учебном процессе специальности информатики. Далее рассматриваем оператор parfor, который очень удобен при использовании всех ядер локального компьютера (основные понятия представлены в таблице).
Основные понятия цикла parfor
1 |
Фундаментальное понятие цикла parfor в MATLAB такое же, как и у стандартного цикла for: MATLAB выполняет ряд операций (тело цикла) в диапазоне значений. |
2 |
Часть тела цикла parfor выполняется на клиенте MATLAB (где parforзапущен), и часть выполняется параллельно на рабочих MATLAB. |
3 |
Необходимые данные, которые обрабатывает parfor, отправляются от клиента рабочим, где и происходит большая часть вычислений, затем результаты отсылаются назад клиенту и объединяются. |
4 |
Каждое выполнение тела цикла parfor – это итерация. Рабочие MATLAB выполняют итерации независимо друг от друга. |
5 |
Цикл parfor полезен в ситуациях, где есть необходимость выполнить много простых итераций. Parfor делит итерации цикла на группы так, чтобы каждый рабочий выполнял некоторую часть общего количества итераций. |
6 |
Цикл parfor также полезен, когда выполнение итерации цикла занимает много времени, ведь рабочие могут выполнять итерации одновременно. |
7 |
Цикл parfor нельзя использовать, когда итерации цикла зависят от результатов других. |
8 |
Каждая итерация должна быть независимой от всех других. Поскольку некоторое количество времени тратится на коммуникации, этот цикл не целесообразно использовать для небольшого количества простых вычислений. При коммуникации система автоматически упаковывает рабочие файлы в zip-архив и распаковывает его в соответствующих сессиях рабочих процессов. |
К каждому типу применяются некоторые ограничения, например: внутри цикла запрещается модифицировать значение переменной [1, 2].
Далее набираем наши конкретные задания на расчеты:
и получаем ответ (рис. 1):
Рис. 1. Окно Workspace с результатом
Выделяя в данном окне имя соответствующей переменной можно увидеть ответы расчета в другом формате (рис. 2), т.е.
Рис. 2. Ответы расчета в развернутом формате
Итак, мы реализовали работу оператора parfor для использования всех ядер локального компьютера.