Рубрика «параллельное программирование» - 33

Здравствуйте, уважаемые читатели!

Так сложилось, что это третий пост в блоге нашей компании, и, как и первые два, он посвящен вопросам многопоточного программирования и проблемам, которые при этом возникают. Получилось так неслучайно, ведь мы на собственной «шкуре» испытали, что ситуации, возникающие при написании многопоточных программ, невероятно сложны для отладки, так как во многом определяются динамикой работы программы на конкретной аппаратной платформе. Уверен, что большинство программистов сталкивались с ситуацией, когда программа, которая прекрасно работает на одном компьютере, на другом совершенно неожиданно начинает дедлочиться практически «на ровном месте».Читать полностью »

Эта статья описывает, как построить простое приложение для магазина Windows используя Intel® Threading Building Blocks (Intel® TBB).

Мой предыдущий пост Windows 8: Написание многопоточных приложений для магазина Windows с помощью Intel® Threading Building Blocks описывает экспериментальную поддержку для приложений для магазина Windows. Обновление 3 для Intel TBB 4.1, так же как стабильный релиз tbb41_20130314oss содержит динамические библиотеки для таких приложений.
Читать полностью »

Недавно в нашем блоге появилась статья о NUMA-системах, и я хотел бы продолжить тему, поделившись своим опытом работы в Linux. Сегодня я расскажу о том, что бывает, если неправильно использовать память в NUMA и как диагностировать такую проблему с помощью счётчиков производительности.
Читать полностью »

В ноябре 2012 года был дан старт конкурсу по параллельному программированию от компании Intel, и этому даже был посвящён отдельный пост на хабре. О конкурсе мы узнали от нашего преподавателя Евгения Калишенко. Он читает курс по «высокопроизводительным и параллельным вычислениям» в Санкт-Петербургском Академическом Университете и стал руководителем нашей команды.

Цель конкурса заключалась в том, чтобы в течение нескольких недель написать и оптимизировать решение одной алгоритмической задачи. Прежде чем описывать её условие, отметим несколько особенностей конкурса.
Читать полностью »

Yarr — dataflow фреймворк (обработки изображений) на Хаскеле

Зондирование обстановки на Реддите показало, что едва ли хоть кто-то всерьез занимается обработкой изображений на Хаскеле, несмотря на то, что достаточно популярная библиотека Repa предполагает работу с изображениями как одно из основных приложений. Надеюсь, ситуацию сможет изменить библиотека Yarr (документация, гитхаб).

Я называю библиотеку dataflow-фреймворком, потому что она обобщена для обработки массивов (от одномерных до трехмерных) элементов любых типов, в том числе векторов чисел, например координат, комплексных чисел. Но основное предполагаемое применение — обработка двумерных массивов из векторов цветовых компонент, т. е. изображений. Фреймворк непосредственно не содержит алгоритмов обработки изображений, а предоставляет мощную инфраструктуру для их написания.
Читать полностью »

Получаем сертификаты Intel по программированию, не выходя из домаЗдравствуй. Мне 26 лет и я бородат программист без высшего образования. Я бы хотел его получить, но не смог. Не думаю что вам это чуждо: вместо того, чтобы приходить в университет и изучать современное и интересное, там заставляют учить Pascal под DOS.

Это мило и забавно, но я совершенно не представляю, зачем оно мне надо. Вот я и не выдержал — вы понимаете, что я имею в виду. С другой стороны, без обучения никак и учиться приходится постоянно и много. Все мы читаем статьи и книги в интернетах, но статьи обычно очень однобокие и непонятные, а книги приходится читать по диагонали из-за тонн воды в них. Что же делать, спросишь меня ты, мой дорогой хабр.
Читать полностью »

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

Разработчики завершают дизайн и разводку платы в ближайшие недели. Читать полностью »

В этой статье я расскажу о том, как загруженность шины данных влияет на масштабируемость (scalability) приложений. Под масштабируемостью мы будем понимать не только способность многопоточного приложения сокращать свое время выполнения по мере увеличения числа потоков. Мы также добавим сюда и способность однопоточного приложения, запущенного одновременно в несколько копий (instances), выполняться за тот же самый промежуток времени, что и одна копия. Хотя последний пример было бы правильнее охарактеризовать таким свойством как пропускная способность (throughput), так как он относится к «серверному» режиму запуска приложений. Т.е. это такой режим, при котором на сервере запускается однопоточное приложение, каждый раз когда к нему подключается новый клиент. Главная задача при разработке таких приложений — это снижение их зависимости от общих ресурсов, одним из которых может являться шина данных.
Читать полностью »

Сегодня наличие многоядерных, многопроцессорных и многоузловых систем является уже нормой при обработке большого объёма данных.
Как же можно задействовать все эти вычислительные мощности? Ответ очевиден — распараллелив задачу.
Но тут же встаёт другой вопрос: а как синхронизировать сами подзадачи?
Читать полностью »

NUMизматика, NUMерология и просто о NUMANUMA (Non-Uniform Memory Access — «Неравномерный доступ к памяти» или Non-Uniform Memory Architecture — «Архитектура с неравномерной памятью») — технология совсем не новая. Я бы даже сказала, что совсем старая. То есть, в терминах музыкальных инструментов, это уже даже не баян, а, скорее, варган.
Но, несмотря на это, толковых статей, объясняющих, что это, а главное, как с этим эффективно работать, нет. Данный пост, исправляющий эту ситуацию, предназначен прежде всего для тех, кто ничего не знает про NUMA, но также содержит кое-что интересное и для знатоков-NUMизматов, а главное, он облегчает жизнь мне, инженеру Intel, так как отныне всех интересующихся NUMA русскоязычных разработчиков буду отсылать к нему.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js