Основы технологии MPI на примерах

MPI_Reduce_and_Bcast_efficiency

Параллельное программирование — очень актуальное направление, т.к. большинство современных вычислительных устройств (включая телефоны) являются многоядерными или многопроцессорными. В предыдущей записи я публиковал учебник по OpenMP, однако OpenMP позволяет программировать только системы с общей памятью — в большей части, многоядерные компьютеры. Основной проблемой таких систем является плохая масштабируемость — не так… Read more »

Учебник по OpenMP

openmp_architectude

OpenMP — это библиотека для параллельного программирования вычислительных систем с общей памятью (дальше кратко описано что это за системы). Официально поддерживается Си, С++ и Фортран, однако можно найти реализации для некоторых других языков, например Паскаль [1] и Java [2]. Все примеры в этом «учебнике» написаны на С++. Библиотека активно развивается,… Read more »

Примеры анализа сложности алгоритмов

algorithm_example_4_5

Еще одна статья по анализу алгоритмов? Давным давно я написал статью, в которой была параллельная реализация алгоритма быстрой сортировки [1]. По ней я получил обратную связь. Одни ребята написали мне, что быстрая сортировка будет работать медленнее, чем их реализация (мне скинули «слегка оптимизированный» алгоритм сортировки пузырьком). В качестве аргумента я… Read more »

Разработка игры для развития памяти под Android (C++, Qt)

drawing_screenshot

Накидал очередную игрушку под Android. Поделка оказалась играбельной, выложил на маркет и решил написать статью о процессе разработки. Вообще, на habrahabr есть куча статей в стиле «моя первая игра под Android», но зачастую [1,2]: играть в это совсем скучно; в комментариях жалуются на отсутствие технических деталей; разработчик не предоставляет читателям… Read more »

Процесс разработки программного обеспечения ICONIX

iconix

В предыдущих статьях я рассказывал про некоторые диаграммы UML — все эти статьи были из одного цикла, целью которого является описание полноценного процесса проектирования ICONIX: диаграммы использования (use-case) [UML_use-case]; диаграммы пригодности (rubustness) [UML_rubustness]; диаграммы последовательности (sequence) [UML_sequence]; диаграммы классов (class) [UML_class]. На этот раз я хочу показать как выглядит этот… Read more »

Диаграммы классов UML

Введение Диаграмма классов занимает центральное место в проектировании объектно-ориентированной системы. Нотация классов используется на разных этапах проектирования и строится с различной степенью детализации. Язык UML применяется не только для проектирования, но и с целью документирования, а также эскизирования проекта. Я (в отличии от Гради Буча) не являюсь сторонником разработки проекта… Read more »

Введение в Erlang

Ранее на блоге я публиковал две заметки по языку Erlang — «Обработка списков на Erlang» и «Unit тестирование в Erlang на примере«. Я полагал, что это будет интересно тем, кто интересуется Erlang-ом (обычно им интересуются как языком параллельного и распределенного программирования и я рекомендую посмотреть на этот язык своим студентам… Read more »

Основы UML. Диаграммы последовательности

sequence-erlang-process-example

Диаграммы последовательности (sequence diagram) являются видом диаграмм взаимодействия языка UML, которые описывают отношения объектов в различных условиях. Условия взаимодействия задаются сценарием, полученным на этапе разработки диаграмм вариантов использования [1]. Существуют различные взгляды на применение этого вида диаграмм: Фаулер предлагает строить диаграммы последовательности для визуализации наиболее сложных отношений на диаграмме классов… Read more »

Процесс ICONIX. Диаграммы пригодности

robustness_use_case_1

После построения диаграмм вариантов использования и их согласования с заказчиком, процесс ICONIX предлагает приступить к разработке диаграмм пригодности (робастности, rubustness diagrams) [1, 2]. Гради Буч не использует этот вид диаграмм, однако он все равно просматривает каждый вариант использования и пытается выделить объекты, после чего переходит сразу к построению диаграмм взаимодействия… Read more »

Основы UML — диаграммы использования (use-case)

use-case-include-example

Это первая статья из цикла про методологию ICONIX, посвящена UML-диаграммам вариантов использования. В публикациях и книгах по ICONIX, use-case диаграммы обычно описываются очень бегло, а в книгах по UML — слишком подробно. Я постараюсь сделать это настолько подробно, чтобы можно было приступить к использованию диаграмм, но при этом не было… Read more »