-
14.01.2011
Презентация Гая Стили выражает его идею о том, что размышлять о параллелизме – не задача программистов; вместо этого нужно разработать подход к созданию языков программирования, которые могли бы обеспечить прозрачный запуск задач в параллельном режиме и поддерживать алгоритмы, построенные на отсутствии зависимостей и принципах "построить и победить", а не на линейном расчленении проблемных фрагментов.
-
28.01.2010
В данной статье описываются две технологии параллельного программирования с точки зрения технологии многоядерности – MPI и OpenMP. Автор объясняет различия между ними, принцип работы каждой технологии и сравнивает результаты производительности, полученные в программах с использованием MPI и OpenMP. Он также говорит о смешанном подходе в программировании под многоядерные системы, когда используются обе технологии. Статья написано очень доступно и содержит поясняющие скриншоты, схемы и таблицы.
-
11.11.2009
Нерегулярные алгоритмы требуют использования задачных пулов, однако при этом возникает проблема активного ожидания, которое неэффективно использует вычислительные ресурсы и не имеет решения в технологии OpenMP. Михаэль Зюсс и Клаудия Леопольд рассматривают варианты задачного пула, которые могут быть реализованы в OpenMP, и сравнивают их производительность. Они также предлагают возможные способы улучшения спецификации OpenMP для решения проблемы активного ожидания.
-
30.09.2009
Написанная доступным и живым языком, данная статья затрагивает принципы многопоточного программирования и включает несколько разделов, в которых описываются различные подходы и аспекты этой технологии: многозадачность, основы многопоточного программирования, управление потоками, синхронизация, стратегии, а также параллелизм задач, параллелизм данных, принцип конвейерной обработки, инструменты и библиотеки для работы с многопоточностью, графическое программирование и инструменты отладки. Иными словами, статья затрагивает самые важные моменты многопоточного программирования и будет полезна любому разработчику при его освоении.
-
18.09.2009
Создание нерегулярных параллельных алгоритмов с помощью OpenMP - довольно трудоемкая, но все же реализуемая задача, и данная статья показывает это на примере алгоритма, реализующего механизм поиска по ширине. Основная проблема, которая возникает в данном случае - недостаточная поддержка отмены потоков. Авторы дают описание этого механизма и предлагают способ обойти указанную проблему, а также выдвигают предложения по улучшению спецификации OpenMP.
-
15.09.2009
Данный Wiki-ресурс представляет собой базу данных, содержащую коллекцию различных дефектов и ошибок в сфере высокопроизводительных вычислений, накопленную разработчиками из собственной практики. Все ошибки распределены по нескольким категориям (например, ошибки, связанные с синхронизацией, управлением памятью и т.д.). Поощряются отзывы программистов и разработчиков и пополнение базы дополнительными сведениями о подобных ошибках.
-
26.07.2009
Создание нерегулярных параллельных алгоритмов с помощью OpenMP - довольно трудоемкая, но все же реализуемая задача, и данная статья показывает это на примере алгоритма, реализующего механизм поиска по ширине. Основная проблема, которая возникает в данном случае - недостаточная поддержка отмены потоков. Авторы дают описание этого механизма и предлагают способ обойти указанную проблему, а также выдвигают предложения по улучшению спецификации OpenMP.
-
12.07.2009
В данной статье авторы продолжают исследовать недостатки OpenMP в отношении Си++ кода и предлагают эффективные решения для улучшения технологии. На этот раз в качестве примера, демонстрирующего достоинства и недостатки OpenMP, используется шаблон одноэлементного множества. Авторы рассматривают несколько способов реализации одноэлементного множества с защитой потоков, анализируют возникающие проблемы и предлагают возможные "заплатки" и решения. Также для каждого метода проводятся тесты производительности и в итоге предлагается наилучшее решение.
-
23.06.2009
Какой станет модель параллельного программирования через 10 лет? Автор статьи пытается найти ответ на этот вопрос и дает обзор тенденций в современном компьютерном мире, цитируя главных исследователей Microsoft Бертона Смита и Крейга Мунди. Затронуты такие темы как разработка параллельных языков программирования и усовершенствование процессорных чипов.
-
05.05.2009
Данный раздел FAQ служит кратким введением в технологию OpenMP и ее использование на компьютерах HPCVL Sunfire SMP. Он дает развернутые ответы на десять наиболее часто задаваемых вопросов об этой технологии, затрагивающих принципы работы и реализации, примеры использования и т.д. Ответы содержат полезные ссылки для получения большей информации.
-
29.03.2009
В своей статье Херб Саттер обсуждает проблему параллелизма - очередной приближающейся революции в сфере разработки программного обеспечения, - его предпосылок, последствий и стоимости. Большая часть статьи посвящена анализу текущего состояния в компьютерной индустрии и объяснению, почему последовательные программы больше не могут извлекать выгоду из растущей производительности и должны уступить место параллельным (в первую очередь многопоточным) приложениям, а также - как быть с этой проблемой. Статья написана живым и ироничным языком, но в то же время является действительно серьезным и подробным обзором наступающих перемен. Безусловно, она будет интересна и полезна для всех разработчиков.
-
24.03.2009
В этой статье авторы представляют обзор наиболее распространенных ошибок, которые программисты-новички допускают при использовании технологии OpenMP. Все ошибки распределены по двум группам: ошибки корректности работы и ошибки производительности. Все они подробно объясняются и демонстрируются, а затем приводятся советы, как избежать их в дальнейшем. Авторы также дают информацию о том, какие компиляторы могут отслеживать эти ошибки, а какие нет.
-
16.03.2009
Эффективное использование потоков данных - ключ к высокой производительности, и Херб Саттер подробно рассказывает о проблеме усовершенствования данного инструмента параллельного программирования с помощью изолирования данных и работы каждого потока. В статье обсуждаются методы улучшения кода с несколькими потоками на примере трех стандартных ситуаций: GUI-приложений, каналов связи между клиентами и сервером и конвейерной обработки. Для каждого случая приводятся примеры кода и подробное объяснение с инструкциями, как улучшить этот код, используя специальные методы.
-
07.03.2009
Керри Д. Уонг демонстрирует различия в производительности Си++ кода при выполнении операции матричного умножения с использованием OpenMP и библиотек uBLAS, cBLAS и MATLAB. Он приводит примеры кода с внесенными изменениями и комментирует их, делая выводы об изменениях производительности. В конце статьи дается таблица сравнения полученных результатов.
-
17.02.2009
Так называемая задача N ферзей - хороший и интересный пример для демонстрации использования различных новых и старых методов распараллеливания, имеющихся в инструменте Intel Parallel Composer. Статья состоит из трех разделов. В первом разделе объясняется задача и алгоритм ее решения. Во втором разделе предлагается множество способов распараллелить решение и перечисляются достоинства и недостатки каждого из них. Третий раздел приводит сравнение этих методов. Статья снабжена большим количеством примеров кода и поясняющими скриншотами, и будет интересна каждому, кто задействован в сфере параллельного программирования.
-
30.01.2009
В своей заметке автор затрагивает проблему неправильного поведения многопоточного приложения, разработанного для запуска на одном процессоре, при работе на нескольких процессорах, и рекомендует два инструмента для управления параллельным исполнением программ: Erlang и Intel's compiler suite.
-
21.01.2009
В данной статье, автор обращается к проблеме так называемого гибкого планирования потоков и описывает принцип реализации данной технологии. Он также касается программирования с использованием QuickThread и объясняет, как использовать гибкое планирование с наилучшим результатом.
-
16.01.2009
В данном докладе автор обсуждает использование OpenMP, в частности библиотечных функций и переменных среды, а также дает несколько советов по повышению быстродействия и отладки OpenMP-приложений. Все эти аспекты выделены в специальные разделы, снабженные примерами кода или пояснительными таблицами. Также в статье вкратце упоминаются инструменты Intel Thread Checker и Thread Profiler, которые помогают работать с OpenMP-приложениями. Статья будет интересна любому программисту, работающему с технологией OpenMP.
-
28.12.2008
В статье затрагиваются проблемы, связанные с OpenMP-программами. На примере кода автор объясняет, с какими проблемами программист может столкнуться и как использовать инструменты Intel Threading Tools (Intel Thread Checker и Intel Thread Profiler) для облегчения распараллеливания проекта. Вы также найдете несколько советов, что делать с неравномерным распределением нагрузки и влиянием синхронизации. Статья снабжена подробными примерами кода и скриншотами и будет интересна любому разработчику, имеющему дело с технологией OpenMP и многопоточными приложениями.
-
21.12.2008
В данной статье с таким провокационным заголовком обсуждается рациональность отказа от технологии OpenMP и способ "убить" ее к 2011 году, если смысл в этом шаге все же есть. Написанная в юмористическом ключе, статья раскрывает точку зрения автора на данную проблему: OpenMP все еще популярна и вполне работоспособна, так что единственный способ избавиться от этой технологии - позволить ей исчезнуть самой, когда она перестанет отвечать растущей сложности компьютерных технологий.
-
30.06.2008
Автор данной короткой заметки объясняет, каким образом параллелизм позволяет высвободить потенциал многоядерных систем и почему технология OpenMP лучше всего подходит для этой цели. Он перечисляет основные выгоды многопоточности и преимущества OpenMP, а также приводит ссылки на ресурсы по этой технологии.
-
11.06.2008
Параллельное программирование связано со многими трудностями и проблемами, особенно в отношении диагностики дефектов и узких мест в параллельных приложениях. Авторы данной статьи рассказывают о наиболее часто возникающих проблемах, таких как состояния гонки, взаимные блокировки и ошибки организации памяти, а затем касаются некоторых стратегий тестирования и дают рекомендации по наиболее эффективному их использованию. Они также советуют некоторые инструменты, которые помогут вам в процессе тестирования параллелизма (CHESS, The Intel Thread Checker, Chord, KISS, Zing) и приводят список характеристик, на которые надо обратить внимание при тестировании производительности. Другими словами, статья содержит всю необходимую информацию по вопросам диагностики дефектов параллелизма и повышения производительности параллельных приложений.
-
21.03.2008
Джон Уэст представляет обзор телеконференции, посвященной заявлению Intel и Microsoft о создании двух исследовательских центров, которые сконцентрируются на поиске путей улучшения технологии параллельного программирования и самого "образа мышления" программистов, а также применяемых ими техник параллельного программирования. Автор поясняет некоторые моменты в данном вопросе и цитирует высказывания некоторых участников конференции. Так, в частности, основной целью исследовательских центров является совершенствование основного направления в компьютерной индустрии. Автор также делает некоторые выводы о положительных последствиях сделанного Intel и Microsoft шага.
-
20.09.2007
This brief note describes a common mistake of assuming that there is synchronization between the threads entering a worksharing construct when a FIRSTPRIVATE variable is used.
-
11.09.2007
В эпоху, когда многопоточное программирование становится все более распространенным, важно, чтобы разработчики знали о технологиях, предназначенных для его упрощения. Данная статья подразумевается как краткое введение в технологию OpenMP, но она достаточно объемна и включает несколько разделов, освещающих разнообразные важные моменты. Прежде всего, в статье объясняется принцип реализации OpenMP, основанной на pragma-директивах, и затрагиваются следующие вопросы: синтаксис, безопасность потоков, совместное использование данных, синхронизация исполнения и вложенность циклов. Каждый раздел содержит большое количество поясняющих примеров кода и описаний директив и операторов, применяемых с той или иной целью. Также даются некоторые советы по устранению дефектов. Статья послужит хорошим источником базовой информации о технологии OpenMP.
-
06.08.2007
В статье "Что усложняет параллельное программирование" автор обращается к одноименной статье Анвара Гулома и добавляет несколько новых пунктов в список факторов, усложняющих параллельное программирование в сравнении с последовательным. Помимо таких факторов как обнаружение параллелизма, устранение ошибок, повышение производительности, оценка перспективы и применение современных методов программирования, упомянутых Анваром Гуломом, Михаэль Зюсс называет также сложность и склонность параллельного программирования к ошибкам, недостаток знания инновационных систем параллельного программирования и многое другое.
-
03.08.2007
Что усложняет параллельное программирование? Автор статьи с одноименным названием отвечает на этот вопрос, исходя из собственного опыта программирования, и перечисляет несколько факторов в порядке возрастания их сложности. Это обнаружение параллелизма, устранение ошибок, повышение производительности, оценка перспективы и применение современных методов программирования. Прибегая к логическому объяснению и приводя живые примеры, автор убедительно доказывает свою точку зрения.
-
02.05.2007
Статья посвящена проблеме перенесения зависимости в цикле при распараллеливании или оптимизации цикла for. Автор описывает различные решения для устранения этой проблемы и возникающие трудности, которые он демонстрирует на примерах кода.
-
11.01.2007
Цель данной статьи - познакомить пользователя с основами OpenMP. Автор предлагает обзор pragma-директив, процедуры исполнения и переменные среды OpenMP и иллюстрирует их применение на примерах. Она также дает некоторые советы по поводу того, какие инструменты и методы можно использовать, чтобы справиться с некоторыми ошибками и повысить производительность и безопасность кода.
-
17.10.2006
При быстро развивающейся технологии параллельного программирования, необходимо, чтобы стандарт языка Си++ обеспечивал адекватную поддержку этой технологии. В статье описывается встреча специалистов в области Си++, посвященная обсуждению проблем создания стандарта поточной обработки данных для следующей версии языка. Были затронуты такие проблемы, как выбор модели памяти, синхронизация потоков, запуск и слияние потоков, а также работа с исключениями. В статье рассказывается о самых важных выступлениях и предложениях некоторых членов встречи.
-
20.09.2006
В своей краткой заметке, Михаэль Зюсс рассматривает возможность вызова функции once в OpenMP, где до сих пор такой механизм не реализован. Он приводит примеры кода, объясняя, как сделать это лучше всего.
-
11.09.2006
Статья, представленная в двух частях, знакомит читателей с основами технологии OpenMP и описывает различные #pragma директивы, применяемые в ней, а также принципы работы с переменными, параллельными потоками и секциями. Автор приводит большое количество примеров кода и подробные объяснения и советы, как решать проблемы, представленные в них. Статья безусловно будет полезна всем разработчикам, делающим первые шаги в OpenMP.
-
21.08.2006
В статье сравниваются функция scoped locking и директива critical в OpenMP, которые обе служат для работы с взаимными исключениями. Сравнение проводится по нескольким пунктам, которые проиллюстрированы примерами кода. После этого делается вывод, какая из двух методик лучше.
-
12.08.2006
Если вы сомневаетесь, что OpenMP является лучшей системой параллельного программирования на языках Си/Си++ и Fortran, прочитайте статью Михаэля Зюсса, где он раскрывает три причины, по которым стоит остановиться на этой технологии: высокий уровень абстракции, высокая производительность и зрелость системы. Написанная непринужденным языком, статья может послужить замечательным кратким обзором основных достоинств OpenMP.
-
13.12.2005
Статья затрагивает тему поддержки технологии OpenMP в программном обеспечении от Sun Studio. В первом разделе описываются принцип работы OpenMP, ее модель исполнения и директивы. Во втором разделе объясняется, как реализована поддержка OpenMP в компиляторе и некоторых наиболее важных инструментах Sun Studio. В статье также обсуждаются вопросы производительности OpenMP приложений. Текст снабжен поясняющими графиками и схемами.
-
10.12.2005
В своем блоге автор касается темы технологии OpenMP с точки зрения технологии многопотоковых чипов (CMT), которая должна стать весьма распространенной в ближайшее будущее. В посте дается обзор OpenMP, перечисляются ее основные преимущества перед другими методами распараллеливания и приводятся некоторые советы по ее изучению и применению.
-
11.10.2005
Технология OpenMP позволяет разработчикам создавать многопоточные приложения быстрее и с меньшими усилиями. Авторы данной статьи хотят рассказать об основных особенностях данной технологии, знакомя пользователя с конструкциями OpenMP (в частности pragma-директивами для синхронизации и процедур среды исполнения) и освещая некоторые вопросы, связанные с использованием общих и частных данных, алгоритмами планирования потоков и реализации параллелизма без циклов. Статья снабжена большим количеством примеров кода и пояснениями, как использовать те или иные конструкции.
-
28.02.2005
Как пишут авторы, "сегодняшний мир параллельного программирования многообразен и сложен", поэтому они решили дать небольшой обзор текущего состояния этой области. Для этой цели они предлагают создать три проекта, состоящие в том, чтобы провести опрос среди программистов и ученых относительно разнообразных аспектов технологии параллельного программирования, сравнении различных систем параллельного программирования с помощью стандартного набора тестов, а также создании вики-ресурса, который послужит лучшим источником информации по всем вопросам, которые могут возникнуть касательно этой технологии.