» » Параллельное программирование » Страница 13

 

Первое знакомство с сопроцессором Intel Xeon Phi

Автор: admin от 7-07-2015, 18:41, посмотрело: 436

Желание познакомиться с сопроцессором Xeon Phi возникло давно, но то все не было возможности, то времени. В конце концов чудо свершилось и добрался до предмета вожделения. К сожалению, в руки попала далеко не самая последняя модель – 5110P, но для первого знакомства сойдет. Имея опыт работы с CUDA, меня очень интересовал вопрос отличий между программированием для GPU и сопроцессора. Вторым вопросом был: «А что (кроме дополнительной головной боли) я буду иметь используя сей девайс вместо GPU или CPU?».
Подробности далее

Категория: Программирование

 

Публичное бета-тестирование FlyElephant для научных расчетов

Автор: admin от 24-06-2015, 15:35, посмотрело: 338

Публичное бета-тестирование FlyElephant для научных расчетовПриветствую Хабр!

Вчера наш стартап FlyElephant перешел в стадию публичного бета-тестирования. Мы запустили сервис с минимальным функционалом.

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

Категория: Программирование, Веб-разработка

 

Гибридная реализация алгоритма MST с использованием CPU и GPU

Автор: admin от 12-06-2015, 11:05, посмотрело: 552

Введение


Решение задачи поиска минимальных остовных деревьев ( MST — minimum spanning tree) является распространенной задачей в различных областях исследований: распознавание различных объектов, компьютерное зрение, анализ и построение сетей (например, телефонных, электрических, компьютерных, дорожных и т.д.), химия и биология и многие другие. Существует по крайней мере три известных алгоритма, решающих данную задачу: Борувки, Крускала и Прима. Обработка больших графов (занимающих несколько ГБ) является достаточно трудоемкой задачей для центрального процессора (CPU) и является востребованной в данное время. Все более широкое распространение получают графические ускорители (GPU), способные показывать намного большую производительность, чем CPU. Но задача MST, как и многие задачи по обработке графов, плохо ложатся на архитектуру GPU. В данной статье будет рассмотрена реализация данного алгоритма на GPU. Также будет показано, как можно использовать CPU для построения гибридной реализации данного алгоритма на общей памяти одного узла (состоящего из GPU и нескольких CPU).
Если интересно, то жми сюда

Категория: Программирование

 

Несколько советов по OpenMP

Автор: admin от 31-05-2015, 01:56, посмотрело: 405

Несколько советов по OpenMP

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

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

1. Именуйте критические секции


В очередь, сукины дети, в очередь! //М. А. Булгаков «Собачье сердце»

С помощью директивы critical мы можем указать участок кода, который будет исполняться только одним потоком в один момент времени. Если один из потоков начал выполнение критической секции с данным именем, то остальные потоки, начавшие выполнение этой же секции, будут заблокированы. Они будут ждать своей очереди. Как только первый поток завершит выполнение секции, один из заблокированных потоков войдет в нее. Выбор следующего потока, который будет выполнять критическую секцию, будет случайным.

Категория: Программирование

 

Оберон умер, да здравствует Оберон! Часть 1. Некоторые любят поактивней

Автор: admin от 27-05-2015, 14:54, посмотрело: 356

Языкам программирования семейства Оберон не суждено было прорваться в мейнстрим, хотя они и оставили заметный след в IT-индустрии. Однако и операционные системы, написанные на этих языках (являясь одновременно и программными каркасами различных решений и средами разработки), и сами языки программирования используются в учебной, исследовательской и промышленной сферах и по сей день, понуждая к творчеству и экспериментам, развиваясь и впитывая новые веянья индустрии и влияя на неё.

Этой обзорной статьёй я открываю серию статей, посвящённых языку Активный Оберон и операционной системе A2, написанной на этом языке.

Итак, встречайте — Активный Оберон


Первая публикация по Активному Оберону появилась в 1997 году, но понятно, что язык и его реализация появились несколько раньше. За эти годы произошло много изменений в языке, переработана среда времени выполнения, написана операционная система A2.

Категория: Программирование, Системное администрирование

 

Vectorization Advisor, ещё один пример — разгоняем фрактал

Автор: admin от 12-05-2015, 09:03, посмотрело: 404

Мы недавно уже писали о новом Vectorization Advisor. О том, что это такое и зачем нужно, читайте в первой статье. Этот же пост посвящён разбору конкретного примера оптимизации приложения с помощью этого инструмента.

Приложение взято из примеров библиотеки Intel® Threading Building Blocks (Intel TBB). Оно рисует фрактал Мандельброта и распараллелено по потокам с помощью Intel TBB. Т.е. преимущества многоядерного процессора оно использует — посмотрим, как обстоят дела с векторными инструкциями.

Vectorization Advisor, ещё один пример — разгоняем фрактал

Категория: Программирование

 

Пишем свой Spliterator

Автор: admin от 12-05-2015, 07:12, посмотрело: 430

Многие из вас уже попробовали на вкус Stream API — потоки Java 8. Наверняка у некоторых возникло желание не только пользоваться готовыми потоками от коллекций, массивов, случайных чисел, но и создать какой-то принципиально новый поток. Для этого вам потребуется написать свой сплитератор. Spliterator — это начинка потока, публичная часть его внутренней логики. В этой статье я расскажу, как и зачем я писал сплитератор.

Категория: Программирование

 

Реализация шаблона Активный объект на Java c AspectJ и Zephyr

Автор: admin от 30-04-2015, 16:51, посмотрело: 957

В статье описывается подход к реализации на Java шаблона Активный объект, основанный на использовании аспектно-ориентированного расширения Java AspectJ и проекта Zephyr, добавляющего в Java легковесные потоки. Цель подхода — обойти недостатки существующих реализаций данного шаблона и сделать новую реализацию более прозрачной.

Активный объект — шаблон проектирования, который отделяет выполнение метода от его вызова. Шаблон позволяет повысить параллелизм и упростить синхронный доступ к объекту, который живет в собственном потоке.

Категория: Программирование

 

FlyElephant – креативная лаборатория для научных сотрудников и инженеров. Часть 1. История создания

Автор: admin от 29-04-2015, 12:56, посмотрело: 427

Привет, Хабр!

Меня зовут Дмитрий Сподарец. Сегодня я начинаю серию статей о сервисе FlyElephant, основателем которого являюсь. С чего все начиналось, функционал и нынешнее состояние проекта, программа бета-тестирования и наша конференция AI&BigData Lab, а также о многом другом Вы узнаете из ближайших публикаций.

FlyElephant – креативная лаборатория для научных сотрудников и инженеров. Часть 1. История создания

FlyElephant предоставляет научным сотрудникам и инженерам среду для выполнения вычислительных программ. Благодаря каталогам шаблонов, алгоритмов, данных и другим компонентам FlyElephant упрощается процесс разработки программ и взаимодействия с ними.
История создания

Категория: Программирование, Веб-разработка

 

Функции IPP c поддержкой бордюров для обработки изображений в нескольких потоках

Автор: admin от 27-04-2015, 09:12, посмотрело: 445

В результате длительного использования даже самых хороших программных продуктов постепенно выявляются те или иные их недостатки. Не стала исключением, и библиотека Intel Performance Primitives (IPP). К моменту выхода версии 8.0 выяснились некоторые проблемы, часть из которых относится к функциям обработки двумерных изображений.
Для их решения в IPP 8.0 многие функции обработки изображений приведены к общему шаблону, позволяющему обрабатывать изображения по блокам ( tiles), и, следовательно, эффективно распараллеливать на уровне приложения код, содержащий вызовы IPP функций. Новый API соответствующих IPP функций поддерживает бордюры нескольких типов, не использует внутреннее выделение динамической памяти, позволяет делить изображения на фрагменты произвольного размера и обрабатывать эти фрагменты независимо; упрощает использование и повышает производительность ряда функций. В данной статье подробно рассмотрен новый API и приведены примеры использования.

Категория: Программирование