Возможно кто-то преподавал параллельное программирование или готовил практические занятия\семинары по этой тематике. Перед мной встала такая задача. Точнее говоря, есть желание модернизировать курс, материал, сам подход к преподаванию параллельного программирования в своем вузе. Особо обсудить эту тему не с кем, поэтому и написал сюда.
Любые комментарии, опыт, предложения, примеры задач и методы проведения занятий будут очень кстати.
Спасибо.
Далее идут рассуждения на тему. вопрос вверху.
Я считаю, что необходимо в таком курсе подходит к параллельному программированию не тольно как к программированию супер-ЭВМ — средству решения "Больших задач" (а именно такую направленность носит фортпост параллельного программирования в России — сайт
http://parallel.ru/)
В конце концов это слишком специфично с теоретический точки зрения и ещё более специфично с практической.
Поэтому хочу вдарить по всему спектру задач параллельного программирования — от Больших задач и до задач реального времени. Это так сказать крайние линии спектра, я в свое время попытался дать сравнение этих классов задач, правда получилось довольно
банально:
Но
все это параллельные системы и параллельное программирование. (не знаю, может быть у меня параноя, но мне кажется, что почему-то для большинства параллельное программирование<=>(потоки|суперкомпьютеры))
Понятно, что есть задачи, лежащие где-то между этими крайностями. Взять хотя бы такую прикладную задачу как отзывчивый-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
еле удержался, чтоб не написать про многоядерность, которое делает(?) прикладное параллельное программирование актуальным...слишком уж много об этом сейчас говорят.