C++ → Ускоряем OpenMP в Visual C++ 2010 из песочницы
Одним из популярных и дешёвых средств реализации многопоточных вычислений на языке C++ является OpenMP.
Достоинства технологии очевидны: простота; малые, и легко отключаемые изменения в коде; поддержка от авторов самых популярных компиляторов:
Проходит пара лет, вы успешно мигрируете на Visual Studio 2010,… и обнаруживаете себя сидящим в луже. Если вчера обработка большого массива данных на машинах с многоядерными процессорами проходила за считанные секунды, то сегодня наличие любого фонового приложения, занимающего собственными вычислениями одно или несколько ядер, практически вешает приложение.
Почему так происходит, и как с этим бороться?
Достоинства технологии очевидны: простота; малые, и легко отключаемые изменения в коде; поддержка от авторов самых популярных компиляторов:
- Visual C++
- GCC 4.2
- Intel C++ Compiler
Проходит пара лет, вы успешно мигрируете на Visual Studio 2010,… и обнаруживаете себя сидящим в луже. Если вчера обработка большого массива данных на машинах с многоядерными процессорами проходила за считанные секунды, то сегодня наличие любого фонового приложения, занимающего собственными вычислениями одно или несколько ядер, практически вешает приложение.
Почему так происходит, и как с этим бороться?
nVidia CUDA → Обзор CUDA отладчика «NVIDIA Parallel Nsight 2.0» из песочницы
Отладка параллельного кода – процесс утомительный и умозатратный. Ошибки распараллеливания проблематично отловить из-за недетерминированности поведения параллельных приложений. Более того, если ошибка обнаружена, ее часто сложно воспроизвести снова. Бывает, что после изменения кода, сложно удостовериться, что ошибка устранена, а не замаскирована. Чаще всего, ошибки в параллельной программе являются гейзенбагами. Порой испытываешь острую потребность в максимально удобных и функциональных инструментах отладки параллельных программ.
Высокая производительность → Matlab кластер своими руками из песочницы
Вступление
Рано или поздно пользователь пакета Matlab/Simulink сталкивается с проблемой недостаточной производительности компьютера, на котором работает. Столкнулся и я.
Первое, что пришло на ум — это модернизация железа. Работаю я на стареньком ноутбуке, и поэтому начал подумывать о стационарном ПК. Но большого прироста производительности это не сулило, да и вообще это метод геймера но не инженера.
Подробности под катом >>
.NET → Распараллеливание задач. Случай «идеальной параллельности». Часть 2
Предлагаемые решения в .NET 4
Это вторая часть статьи, посвященной распараллеливанию идеальных циклов. В первой части были рассмотрены проблемы, возникающие при этом, и общие подходы к их решению. В этой мы поговорим о конкретных библиотечных компонентах, предоставляемых .NET 4.0 для поддержки этих задач.
Для распараллеливания «идеальных» циклов предоставляются следующие варианты:
- класс System.Threading.Tasks.Parallel с методами For (), ForEach ()
- Parallel LINQ с методом расширения AsParallel ().
Блог компании Intel → Intel Ct beta — что, зачем, как
2 недели назад помогал клиенту начать пользоваться бетой Intel Ct. Заодно, как водится, и сам немножко разобрался, и теперь хочу поделиться.
Недавно появилась возможность скачать бету Ct, зарегистрировавшись на сайте. Пока только для Windows, но через некоторое время должна появиться бета и для Linux.
Недавно появилась возможность скачать бету Ct, зарегистрировавшись на сайте. Пока только для Windows, но через некоторое время должна появиться бета и для Linux.
Блог компании Intel → Параллельные заметки №3 — базовые конструкции OpenMP
Начнем знакомство непосредственно с использованием технологии OpenMP и рассмотрим в этой заметке некоторые базовые конструкции.
Блог компании Intel → Параллельные заметки №2 – инструментарий для OpenMP

Прежде чем приступить к изучению методики распараллеливания программ с помощью технологии OpenMP рассмотрим инструментарий, который нам потребуется. А потребуется нам в первую очередь Visual Studio 2005/2008 и Intel® Parallel Studio.
Python → Параллельный Питон, начало
Disclaimer
Родилась у товарища географическая потребность перенести кусочек карты из одного участка Земли в другой. Он это по привычке сделал на дельфях, мне же захотелось попробовать в действии питон, в коем я спецом не являюсь.
Практика
Собственно перевести алгоритм оказалось делом совсем несложным, но вот скорость его работы оставляла желать лучшего.
Первым делом в ход пошел Psyco, ускорив обработку в 6 раз.
Получить лучший результат без изменения алгоритма уже не представлялось возможным, поэтому в ход пошел метод грубой силы — распараллеливание задач.
Microsoft → Сегодня начнется PDC — главная конференция для разработчиков от Microsoft
Хочу напомнить, что сегодня в Лос-Анджелесе стартует главное мероприятие Microsoft для разработчиков, которое проходит раз в несколько лет — PDC 2008.На этой конференции будет анонсированы все новинки, которые Microsoft предложит разработчикам всего мира на протяжении ближайших лет. Это место, где будет рассказано обо всех планах, технологиях и платформах.
Самое главное — мы все сможем посмотреть это в онлайне на сайте www.microsoftpdc.com. На сайте уже сейчас можно найти описание тем киноутов (пленарных докладов):
- 27 октября, 18.30 (МСК) — Cloud Computing (среди докладчиков — Chief Software Architect Рэй Оззи)
- 28 октября, 18.30 (МСК) — Следующее поколение пользовательских интерфейсов (среди докладчиков — Скотт Гатри и старший по Windows Стивен Синофски)
- 29 октября — Исследовательские проекты
- 30 октября — Параллельные вычисления
Также не забудьте про доклады — их будет очень много и они будут очень технологичными.
В общем, ждем, смотрим и наслаждаемся настоящим шоу для разработчиков!
.NET → Производительность C#
Ради интереса хочу показать сообществу график, который демонстрирует производительность C# для матричных операций, по сравнению с C++, C++ с OpenMP, а также Parallel Extensions. По оси X — размер матриц. По оси Y — время выполнения операции умножения в секундах (шкала логарифмическая).

Что уважаемое сообщество думает на эту тему? Имеет ли смысл разрабатывать performance-critical приложения на .NET? Или стоит вкладывать больше энергии в изучение Intel-евских тулов? (Intel TBB, MKL, IPP)? Или просто использовать OpenMP?
P.S.: Картинка снята из моего блога. Полный очерк (на английском) тут.

Что уважаемое сообщество думает на эту тему? Имеет ли смысл разрабатывать performance-critical приложения на .NET? Или стоит вкладывать больше энергии в изучение Intel-евских тулов? (Intel TBB, MKL, IPP)? Или просто использовать OpenMP?
P.S.: Картинка снята из моего блога. Полный очерк (на английском) тут.