Pull to refresh
  • by relevance
  • by date
  • by rating

Производительность C#

.NET *
Ради интереса хочу показать сообществу график, который демонстрирует производительность C# для матричных операций, по сравнению с C++, C++ с OpenMP, а также Parallel Extensions. По оси X — размер матриц. По оси Y — время выполнения операции умножения в секундах (шкала логарифмическая).



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

P.S.: Картинка снята из моего блога. Полный очерк (на английском) тут.
Total votes 43: ↑33 and ↓10 +23
Views 5K
Comments 63

Сегодня начнется PDC — главная конференция для разработчиков от Microsoft

IT-companies
image   Хочу напомнить, что сегодня в Лос-Анджелесе стартует главное мероприятие Microsoft для разработчиков, которое проходит раз в несколько лет — PDC 2008.
  На этой конференции будет анонсированы все новинки, которые Microsoft предложит разработчикам всего мира на протяжении ближайших лет. Это место, где будет рассказано обо всех планах, технологиях и платформах.
  Самое главное — мы все сможем посмотреть это в онлайне на сайте www.microsoftpdc.com. На сайте уже сейчас можно найти описание тем киноутов (пленарных докладов):
  • 27 октября, 18.30 (МСК) — Cloud Computing (среди докладчиков — Chief Software Architect Рэй Оззи)
  • 28 октября, 18.30 (МСК) — Следующее поколение пользовательских интерфейсов (среди докладчиков — Скотт Гатри и старший по Windows Стивен Синофски)
  • 29 октября — Исследовательские проекты
  • 30 октября — Параллельные вычисления
  Как вы понимаете, это самое общее описание, все секреты раскроются уже на самом PDC :)
  Также не забудьте про доклады — их будет очень много и они будут очень технологичными.
  В общем, ждем, смотрим и наслаждаемся настоящим шоу для разработчиков!
Total votes 48: ↑42 and ↓6 +36
Views 309
Comments 20

Параллельный Питон, начало

Python *

Disclaimer


Родилась у товарища географическая потребность перенести кусочек карты из одного участка Земли в другой. Он это по привычке сделал на дельфях, мне же захотелось попробовать в действии питон, в коем я спецом не являюсь.

Практика


Собственно перевести алгоритм оказалось делом совсем несложным, но вот скорость его работы оставляла желать лучшего.
Первым делом в ход пошел Psyco, ускорив обработку в 6 раз.

Получить лучший результат без изменения алгоритма уже не представлялось возможным, поэтому в ход пошел метод грубой силы — распараллеливание задач.
Читать дальше →
Total votes 47: ↑44 and ↓3 +41
Views 15K
Comments 37

Параллельные заметки №2 – инструментарий для OpenMP

Intel corporate blog
image
Прежде чем приступить к изучению методики распараллеливания программ с помощью технологии OpenMP рассмотрим инструментарий, который нам потребуется. А потребуется нам в первую очередь Visual Studio 2005/2008 и Intel Parallel Studio.
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Views 19K
Comments 35

Intel Ct beta — что, зачем, как

Intel corporate blog
2 недели назад помогал клиенту начать пользоваться бетой Intel Ct. Заодно, как водится, и сам немножко разобрался, и теперь хочу поделиться.

Недавно появилась возможность скачать бету Ct, зарегистрировавшись на сайте. Пока только для Windows, но через некоторое время должна появиться бета и для Linux.
Если интересно, стоит ли пробовать скачать бету Intel Ct, и что это вообще такое, читайте дальше.
Total votes 30: ↑25 and ↓5 +20
Views 5.7K
Comments 23

Распараллеливание задач. Случай «идеальной параллельности». Часть 2

.NET *

Предлагаемые решения в .NET 4


Это вторая часть статьи, посвященной распараллеливанию идеальных циклов. В первой части были рассмотрены проблемы, возникающие при этом, и общие подходы к их решению. В этой мы поговорим о конкретных библиотечных компонентах, предоставляемых .NET 4.0 для поддержки этих задач.

Для распараллеливания «идеальных» циклов предоставляются следующие варианты:
  • класс System.Threading.Tasks.Parallel с методами For (), ForEach ()
  • Parallel LINQ с методом расширения AsParallel ().


Читать дальше
Total votes 35: ↑30 and ↓5 +25
Views 14K
Comments 8

Matlab кластер своими руками

High performance *Matlab *
Sandbox

Информация в данной статье устарела



Вступление


Рано или поздно пользователь пакета Matlab/Simulink сталкивается с проблемой недостаточной производительности компьютера, на котором работает. Столкнулся и я.

Первое, что пришло на ум — это модернизация железа. Работаю я на стареньком ноутбуке, и поэтому начал подумывать о стационарном ПК. Но большого прироста производительности это не сулило, да и вообще это метод геймера но не инженера.

Подробности под катом >>
Читать дальше →
Total votes 31: ↑31 and ↓0 +31
Views 24K
Comments 14

Обзор CUDA отладчика «NVIDIA Parallel Nsight 2.0»

GPGPU *
Sandbox
imageОтладка параллельного кода – процесс утомительный и умозатратный. Ошибки распараллеливания проблематично отловить из-за недетерминированности поведения параллельных приложений. Более того, если ошибка обнаружена, ее часто сложно воспроизвести снова. Бывает, что после изменения кода, сложно удостовериться, что ошибка устранена, а не замаскирована. Чаще всего, ошибки в параллельной программе являются гейзенбагами. Порой испытываешь острую потребность в максимально удобных и функциональных инструментах отладки параллельных программ.
Читать дальше →
Total votes 24: ↑24 and ↓0 +24
Views 15K
Comments 6

Ускоряем OpenMP в Visual C++ 2010

C++ *
Sandbox
Одним из популярных и дешёвых средств реализации многопоточных вычислений на языке C++ является OpenMP.

Достоинства технологии очевидны: простота; малые, и легко отключаемые изменения в коде; поддержка от авторов самых популярных компиляторов:
  • Visual C++
  • GCC 4.2
  • Intel C++ Compiler
Проверка боем проходит успешно, и вот распараллеленный код проникает в самые укромные уголки проекта, бьёт все рекорды производительности, выдавая шикарную статистику, подтверждающую успешность релиза.

Проходит пара лет, вы успешно мигрируете на Visual Studio 2010,… и обнаруживаете себя сидящим в луже. Если вчера обработка большого массива данных на машинах с многоядерными процессорами проходила за считанные секунды, то сегодня наличие любого фонового приложения, занимающего собственными вычислениями одно или несколько ядер, практически вешает приложение.

Почему так происходит, и как с этим бороться?

Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Views 7.9K
Comments 8

Карманный кластер за $99

Concurrent computing *
Компания Adapteva (про которую вы скорее всего слышите в первый раз) планирует сделать суперкомпьютер который будет доступен каждому. С 2008 года они занимаются разработками энергоэффективных RISC-процессоров по заказам производителей смартфонов и других мобильных устройств.

«Мы идем вниз по пищевой цепочке», говорит CEO и основатель Andreas Olofsson. Но Adapteva хочет дать свои технологии напрямую людям через проект на Кикстартере, если они соберут как минимум $750K с конечной целью в $3M.

image
Читать дальше →
Total votes 79: ↑76 and ↓3 +73
Views 39K
Comments 140

Генератор Федеративного Фильтра Калмана с использованием Генетических Алгоритмов

.NET *Algorithms *Concurrent computing *
В рамках своей научной активности реализовал так называемый Федеративный Фильтр Калмана (Federated Kalman Filter). В этой статье рассказывается о том, что такое «Федеративный ФК», чем он отличается от обобщенного, а также описывается консольное приложение, реализующее данный фильтр и генетические алгоритмы для подбора параметров его математической модели. Приложение было реализовано с использованием TPL (Task Parallel Library), поэтому пост будет интересен не только специалистам по цифровой обработке сигналов.

UPD1: после прочтения двух недавних статей решил тоже присоединиться к эксперименту/исследованию/авантюре (называйте как хотите). В конце статьи добавил еще один опрос — "Стали бы Вы поощрать рублем такие узко специализированные статьи на Хабрахабре?".

Под катом описание и ссылка на сорцы
Total votes 60: ↑57 and ↓3 +54
Views 24K
Comments 11

И еще раз о GIL в Python

Python *Concurrent computing *
Sandbox

Предисловие


Область, в которой мне повезло работать, называется вычислительная электрофизиология сердца. Физиология сердечной деятельности определяется электрическими процессами, происходящими на уровне отдельных клеток миокарда. Эти электрические процессы создают электрическое поле, которое достаточно легко измерить. Более того оно очень неплохо описывается в рамках математических моделей электростатики. Тут и возникает уникальная возможность строго математически описать работу сердца, а значит — и усовершенствовать методы лечения многих сердечных заболеваний.

За время работы в этой области у меня накопился некоторый опыт использования различных вычислительных технологий. На некоторые вопросы, которые могут быть интересны не только мне, я постараюсь отвечать в рамках этой публикации.
Читать дальше →
Total votes 71: ↑71 and ↓0 +71
Views 35K
Comments 47

Новые решения старой задачи

Programming *Assembler *
Tutorial
image
Или перевод велосипеда на реактивную тягу

Существует одна очень старая задача, возраст которой равен возрасту Американского Стандартного Кода для Обмена Информацией. Конкретнее — это задача преобразования целого числа в его шестнадцатеричное представление ASCII строкой.
В данной публикации будем рассматривать преобразование целого беззнакового шестидесятичетырехбитного числа в строку фиксированной длины без усечения старших нулей.
Задача на первый взгляд кажется элементарной. Она и была бы таковой, если бы таблица ASCII была другой. Но имеем, то что имеем.
Все решения будут только для IA-32 и Intel 64 архитектуры.
Читать дальше →
Total votes 43: ↑38 and ↓5 +33
Views 19K
Comments 19

Продолжаем знакомиться с Intel Xeon Phi: «родной» код

Concurrent computing *
В прошлой статье было описано знакомство с сопроцессором Intel Xeon Phi используя offload – основной код работает на хосте, а отдельные блоки выгружаются на сопроцессор. В данной заметке рассмотрим компиляцию и использование «родного» кода, с целью выяснить, что это дает и чем грозит. В завершении поста будут четыре предложения касательно использования Fortran и примеры программ.
Прошу под кат
Total votes 13: ↑13 and ↓0 +13
Views 9.2K
Comments 0

Java 8 в параллель. Учимся создавать подзадачи и контролировать их выполнение

Programming *Java *Concurrent computing *
Продолжаем цикл статей, посвященный обработке больших объемов данных в параллель (красивое слово, неправда?).

В предыдущей статье мы познакомились и интересным инструментарием Fork/Join Framework, позволяющим разбить обработку на несколько частей и запустить параллельно выполнение отдельных задач. Что нового в этой статье – спросите Вы? Отвечу – более содержательные примеры и новые механизмы для качественной обработки информации. Параллельно я вам расскажу о ресурсных и прочих особенностях работы в этом режиме.



Всех заинтересованных приглашаю под кат:
Читать дальше →
Total votes 15: ↑11 and ↓4 +7
Views 31K
Comments 10

Конкурс GraphHPC-2016 на самую быструю реализацию параллельного алгоритма Community Detection

High performance *Sport programming *Algorithms *GPGPU *Concurrent computing *


Совсем скоро, в рамках третьей научно-технической конференции GraphHPC-2016, стартует конкурс GraphHPC, посвященный проблемам параллельной обработки больших графов с использованием суперкомьютеров. В этот раз участникам предстоит найти самую быструю реализацию задачи Community Detection (поиск сообществ) в неориентированном графе с весами.
Читать дальше →
Total votes 10: ↑9 and ↓1 +8
Views 5.6K
Comments 4

Конкурс GraphHPC-2016 на самую быструю реализацию параллельного алгоритма Community Detection: Итоги

High performance *Sport programming *Algorithms *GPGPU *Concurrent computing *

В рамках конференции GraphHPC-2016, прошедшей 3 марта 2016 года в МГУ им. М.В. Ломоносова на факультете ВМК, проводился конкурс на самую быструю реализацию задачи Community Detection — поиска сообществ в неориентированном графе с весами.
Читать дальше →
Total votes 10: ↑10 and ↓0 +10
Views 6.4K
Comments 4

Конкурс GraphHPC-2017 на самую быструю реализацию задачи Betweenness Centrality

High performance *Sport programming *Algorithms *GPGPU *Concurrent computing *

Лаборатория DISLab (ОАО «НИЦЭВТ») совместно с НИВЦ МГУ проводят четвертую ежегодную научно-практическую конференцию по проблемам параллельной обработки больших графов с использованием суперкомпьютерных комплексов и кластерных систем.


Цель конференции — привлечение внимания к тематике задач по суперкомпьютерной обработке графов и предоставление площадки для общения разработчиков технологий суперкомпьютерной обработки графов и разработчиков графовых приложений, обсуждения перспектив данного направления.


Совсем скоро, в рамках данной научно-технической конференции GraphHPC-2017, стартует конкурс GraphHPC, посвященный проблемам параллельной обработки больших графов с использованием суперкомпьютеров. В этот раз участникам предстоит получить самую быструю реализацию задачи Betweenness Centrality (Центральность по посредничеству) в неориентированном графе.

Интересно - жми сюда!
Total votes 16: ↑16 and ↓0 +16
Views 5K
Comments 3

Введение в lock-free программирование

Wunder Fund corporate blog Programming *Algorithms *Concurrent computing *
Translation
image

В этом посте мы хотели бы еще раз поднять тему программирования без блокировок, сперва дав ему определение, а затем выделить из всего многообразия информации несколько ключевых положений. Мы покажем, как эти положения соотносятся между собой, с помощью блок-схем, а потом мы немного коснемся деталей. Минимальное требование к разработчику, постигающему lock-free, — умение писать правильный многопоточный код, используя мьютексы или другие высокоуровневые объекты синхронизации, например, семафоры или события.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views 37K
Comments 17
1