Параллельное программирование
От: Didro Россия home~pages
Дата: 06.08.07 21:53
Оценка: :)
Возможно кто-то преподавал параллельное программирование или готовил практические занятия\семинары по этой тематике. Перед мной встала такая задача. Точнее говоря, есть желание модернизировать курс, материал, сам подход к преподаванию параллельного программирования в своем вузе. Особо обсудить эту тему не с кем, поэтому и написал сюда.

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

Спасибо.

Далее идут рассуждения на тему. вопрос вверху.

Я считаю, что необходимо в таком курсе подходит к параллельному программированию не тольно как к программированию супер-ЭВМ — средству решения "Больших задач" (а именно такую направленность носит фортпост параллельного программирования в России — сайт http://parallel.ru/)
В конце концов это слишком специфично с теоретический точки зрения и ещё более специфично с практической.
Поэтому хочу вдарить по всему спектру задач параллельного программирования — от Больших задач и до задач реального времени. Это так сказать крайние линии спектра, я в свое время попытался дать сравнение этих классов задач, правда получилось довольно банально:

Параметр \ Задача Большая задача Задача реального времени
Объем данныхТерабайты\ПетабайтыТерабайты\Петабайты
Тип данныхСтатичные данныеДинамические потоки данных
Реальное времяНетДа
НадежностьПроизвольнаКритична
Число одновременно решаемых задачДесятки крупных задачМножество («мелкозернистых») задач
Режим работыПакетный (Offline)Непрерывный (Online)
Взаимодействие с внешней средойПочти отсутствуетИнтенсивное
Требования к производительностиПиковая производительность для данной задачиПиковая пропускная способность
ПримерыHPC:задачи гидро- и аэродинамики, моделирование климата, моделирование в области астрономии или ядерной физики DSP, Embedded, телеком:задачи распознавания, планирования, задачи массового обслуживания, диагностики и контроля, задачи управления
Но все это параллельные системы и параллельное программирование. (не знаю, может быть у меня параноя, но мне кажется, что почему-то для большинства параллельное программирование<=>(потоки|суперкомпьютеры))
Понятно, что есть задачи, лежащие где-то между этими крайностями. Взять хотя бы такую прикладную задачу как отзывчивый-GUI или транзакции в распределенных системах, планирование исполнения запросов в БД и т.д. Я уж не говорю о такой теме как модели параллельного программирования, технологии и языки, языки(исчисления, calculus) формального описания семантики языков — тут вообще темный лес (в смысле очень много и неклассифицировано).

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

Конкретный инструментарий пока не выбрал, ищу интересные задачки — например, как эта (Асинхронное, но последовательное выполнение)
Автор: pASkuda
Дата: 20.06.07
или эта (Суммирование с использованием древовидной свертки).
Я это к тому, что обедающие философы, это кончено классика, но сколько можно...(тем более, что знаю, слушатели курса уже знакомы с этой задачей)

Если говорить о том, чего хотелось бы достич, то в Беркли преподает процессор Эдвард А. Ли(Lee), и я бы многое отдал, чтоб посетить его курс, этот же человек возглавляет такой проект как ProlemyII (собираюсь использовать его на лабораторных) и кстати любит произведения Достоевского в оригинале . В частности у него есть такая концептуальная схемка, которая мне очень нравиться (перевод на русский мой):


Похожий вопрос обсуждали здесь
Автор: Slicer [Mirkwood]
Дата: 16.08.05
, но пока я не готов к столь активному использованию аппаратуры (в планах есть использование ПЛИС и уже сделаны первые шаги в этом направлении, но к сентябрю точно не успею), да и курс не "системы реального времени" называется.

Извиняюсь за этот поток мыслей, просто наболело.
p.s.
до недавнего времени курс базировался на описании CSP-Хоара и языке Ада(Ada95). В принципе ничего плохого, но как бы не получилось как здесь
Автор: dr.Chaos
Дата: 09.07.07
:

>Я помню был у нас препод молодой, [censored]. Так вот он так достал своим параллельным программированием на Ада старший курс, что >однажды вечером попал в больницу на 2 месяца.


p.p.s
еле удержался, чтоб не написать про многоядерность, которое делает(?) прикладное параллельное программирование актуальным...слишком уж много об этом сейчас говорят.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.