Как стать автором
Обновить

Реализация алгоритма BFS на GPU

Время на прочтение8 мин
Количество просмотров12K

Аннотация


В данной статье хочу рассказать как можно эффективно распараллелить алгоритм BFS — поиск в ширину в графе с использованием графических ускорителей. В статье будет приведен подробный анализ полученного алгоритма. Вычисления выполнялись на одном GPU GTX Titan архитектуры Kepler.

Введение


В последнее время все большую роль играют графические ускорители (GPU) в не графических вычислениях. Потребность их использования обусловлена их относительно высокой производительностью и более низкой стоимостью. Как известно, на GPU хорошо решаются задачи на структурных сетках, где параллелизм так или иначе легко выделяется. Но есть задачи, которые требуют больших мощностей и используют неструктурные сетки. Примером такой задачи является Single Shortest Source Path problem (SSSP) – задача поиска кратчайших путей от заданной вершины до всех остальных во взвешенном графе. Решение данной задачи рассмотрено мной в этой статье. Вторым примером задачи на неструктурных сетках является задача Breadth First Search (BFS) — поиска в ширину в неориентированном графе. Данная задача является основной в ряде алгоритмов на графах. Также она немного проще, чем поиск кратчайшего пути. На данный момент алгоритм BFS используется как основной тест для рейтинга Graph500. Далее рассмотрим, как можно использовать идеи решения задачи SSSP в задаче BFS. Про архитектуру GPU компании Nvidia и об упомянутых алгоритмах уже много написано, поэтому в этой статье я не стану дополнительно писать про это. Так же, надеюсь, что понятия warp, cuda блок, SMX, и прочие базовые вещи, связанные с CUDA читателю знакомы.
Читать дальше →
Всего голосов 28: ↑26 и ↓2+24
Комментарии7

Присматриваемся к одноплатникам на RISC-V, обзор модуля Sipeed Lichee RV на процессоре Allwinner D1

Время на прочтение20 мин
Количество просмотров24K
Sipeed Lichee RV

Одноплатные компьютеры на RISC-V процессоре сравнительно новое веяние. Поднебесная активно работает над снижением зависимости от западных информационных систем и технологий, именно поэтому новая открытая архитектура RISC-V одна из ключевых ставок Китая. Для продвижения в массы китайский чипмейкер Allwinner на базе ядра Alibaba/T-Head Xuantie C906 RISC-V разработал процессор Allwinner D1 и упрощенную модификацию Allwinner D1s. На сегодня разработано несколько одноплатников на RISC-V процессоре, и в первенство по массовости вырвалась компания Sipeed с модульным компьютером Система-на-Модуле Lichee RV с 512 Мб ОЗУ всего за $16.90, работающим на Linux. Разработчик может спроектировать несущую плату для данного модуля, добавив необходимые периферийные устройства и разъемы. В результате получится решение максимально подготовленное для себя. Данный модуль предназначен для создания интеллектуальных информационных систем, терминалов, роботов, и т.д. В первой части рассмотрим архитектуру процессора, возможности модуля, дистрибутивы, программное обеспечение. Во второй части детально рассмотрим порты и интерфейсы для программирования, напишем программы на Python и C#.
Читать дальше →
Всего голосов 32: ↑28 и ↓4+24
Комментарии37

Самая быстрая и энергоэффективная реализация алгоритма BFS на различных параллельных архитектурах

Время на прочтение20 мин
Количество просмотров10K

Оффтоп


В названии статьи не поместилось — данные результаты считаются таковыми по версии рейтинга Graph500. Также хотелось бы выразить благодарность компаниям IBM и RSC за предоставленные ресурсы для проведения экспериментальных запусков во время исследования.


Введение


Поиск в ширину (BFS) является одним из основных алгоритмов обхода графа и базовым для многих алгоритмов анализа графов более высокого уровня. Поиск в ширину на графах является задачей с нерегулярным доступом к памяти и с нерегулярной зависимостью по данным, что сильно усложняет его распараллеливание на все существующие архитектуры. В статье будет рассмотрена реализация алгоритма поиска в ширину (основного теста рейтинга Graph500) для обработки больших графов на различных архитектурах: Intel х86, IBM Power8+, Intel KNL и NVidia GPU. Будут описаны особенности реализации алгоритма на общей памяти, а также преобразования графа, которые позволяют достичь рекордных показателей производительности и энергоэффективности на данном алгоритме среди всех одноузловых систем рейтинга Graph500 и GreenGraph500.

Нажми и прочитай про самый быстрый BFS в мире!
Всего голосов 13: ↑13 и ↓0+13
Комментарии4

Создание платформера для виртуальной консоли TIC-80

Время на прочтение16 мин
Количество просмотров13K

8 Bit Panda, игра для вымышленной консоли TIC-80.

Это пост о том, как я написал 8-bit panda, простой платформер в классическом стиле для вымышленной консоли TIC-80.

Поиграть в готовую игру можно здесь.

Если вы любитель ретро-игр и вам нравится программирование, то есть вероятность, что вы уже знакомы с последним трендом: вымышленными консолями. Если же нет, то стоит посмотреть на их самых известных представителей: PICO-8 и TIC-80.

Я выбрал TIC-80, потому что она бесплатна и активно разрабатывается, имеет более широкое соотношение сторон экрана (240x136), чем PICO-8 и может выполнять экспорт на множество платформ, в том числе HTML, Android и двоичные файлы для PC.

В этой статье я расскажу, как я написал для TIC-80 простой платформер 8 Bit Panda.
Читать дальше →
Всего голосов 33: ↑33 и ↓0+33
Комментарии2

Теория Jobs to be Done на человечках

Время на прочтение6 мин
Количество просмотров6.9K

Это первая, теоретическая часть по JTBD. В ней я доступно объясню суть теории, какие есть подходы, как в них не запутаться, как их подружить и где можно применять теорию JTBD. Все на основе личного практического опыта и 4 основных книг на эту тему. Вторая часть будет посвящена исключительно практике применения.

Читать далее
Всего голосов 11: ↑7 и ↓4+3
Комментарии3

Краткая история глагола to be в английском

Время на прочтение7 мин
Количество просмотров18K

«To be, or not to be, that is the question» — «Быть или не быть, вот в чем вопрос». 

Эта фраза Гамлета считается одной из самых узнаваемых в мировой литературе. И она прямо касается темы, о которой мы хотим рассказать сегодня. Поговорим об истории глагола to be. 

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

Читать далее
Всего голосов 13: ↑11 и ↓2+9
Комментарии8

BEING SPACES: ты работаешь, они играют, все счастливы

Время на прочтение3 мин
Количество просмотров776
BEING SPACES BEING SPACES: заведения коммерческого типа, похожие на жилые комнаты, которые находятся в общественных местах и где можно не только заказать покушать или какое-нибудь развлечение, но самое главное, что они предоставляют территорию вне офиса и вне дома, где можно просто посидеть, посмотреть телевизор, почитать книжку, встретиться с друзьями и сотрудниками.

В 1990 году социолог Рей Олденбёг (Ray Oldenburg) в одной из своих книг употребил термин «постороннее место» (The Third Place). Постороннее место даёт возможность временно отрешиться от давления со стороны семьи и со стороны начальства. По мнению Олденбёга, эта идея соответствует фрейдистской концепции счастья – «когда есть любимый человек и любимая работа», только с более реалистичным оттенком: «работать, когда тебя никто не доколупывает».

Со времён Олденбёга BEING SPACES стали развитым коммерческим сектором, среди игроков которого, например, компания Starbucks, которая активно устанавливает тысячи BEING SPACES по всей планете, каждый из которых оборудован удобными стульчиками, столиками и WiFi. Сети Starbucks просачиваются в супермаркеты и госпитали, кинотеатры и гостиницы, университеты и библиотеки, аэропорты и прочие общественные места. И, как известно, каждый новый тренд это просто необычный способ удовлетворить обычные потребности.

Читать дальше →
Всего голосов 34: ↑31 и ↓3+28
Комментарии34

Как я компьютер «Радио 86-РК» настраивал

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров16K

Всем привет! Расскажу вам о том, как я собирал (и тут же ремонтировал) ретро-компьютер на базе Радио86-РК. Данной разработке через некоторое время исполняется четвёртый десяток! А процессору Intel 8080, на базе которого она сделана - все 50 лет. По ходу дам пояснения, как можно собрать аналогичное изделие, сколько оно стоит (по состоянию на 2023 год), с какими проблемами я столкнулся.

Приступим!

Читать далее
Всего голосов 120: ↑119 и ↓1+118
Комментарии50

Критическая уязвимость CVE-2024-31497 в PuTTY версий от 0.68 до 0.80 позволяет провести компрометацию закрытого ключа

Время на прочтение3 мин
Количество просмотров6.4K

Разработчики клиента для различных протоколов удалённого доступа сообщили о критической уязвимости CVE-2024-31497 в PuTTY версий от 0.68 до 0.80, которая позволяет провести компрометацию закрытого ключа. В стабильной версии PuTTY 0.81 эта проблема устранена.

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии4

Google запретит загрузку файлов по протоколу HTTP в Chrome 86 в октябре

Время на прочтение2 мин
Количество просмотров16K
imageФото: www.bleepingcomputer.com

Google в рамках усиления политики безопасности в Chrome полностью перейдет на использование протокола HTTPS при загрузке файлов. В Chrome 86 в октябре этого года загрузку нельзя будет осуществлять по протоколу HTTP. Это будет возможно только во внутренних сетях, которые необходимо будет настроить по специальной инструкции.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии47

Злоумышленники используют Win32/Boaxxe.BE для организации кликфрода

Время на прочтение17 мин
Количество просмотров12K
В этом анализе мы хотим рассказать об интересном семействе вредоносных программ Win32/Boaxxe.BE, которое используется злоумышленниками для направления трафика на рекламные сайты с использованием различных техник кликфрода. Таким образом злоумышленники получают материальную выгоду от рекламодателя, который платит за клики. Первая часть анализа освещает инфраструктуру партнерской сети, которая используется для распространения этой вредоносной программы, во второй части мы сосредоточимся на технических аспектах вредоносного кода.



Дистрибуция и получение прибыли

Win32/Boaxxe.BE распространялся с сайта партнерской программы partnerka.me, который начал свою работу в сентябре 2013 г. Владельцы или клиенты партнерки (партнеры) платят злоумышленникам за установки этой вредоносной программы на компьютеры пользователей. На скриншоте ниже представлена панель управления одного из партнеров (т. н. филиал партнерки), который фиксирует статистику, связанную с дистрибуцией вредоносного кода.

Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии13

Пишем интерпретатор BASIC в стиле 80-х

Время на прочтение22 мин
Количество просмотров9.3K


В течение нескольких лет я работала над личным проектом создания (а на самом деле исследования) «фальшивого эмулятора», то есть написанного на JavaScript эмулятора никогда не существовавшего компьютера. Эта машина должна была стать данью памяти восьми- и шестнадцатибитным компьютерам 1980-х и 90-х.

Однако мне нравятся сложности: в этой машине ещё и использовался новый набор инструкций. Он похож на наборы, применявшиеся в ту эпоху, но немного проще в работе. Так родился Retroputer. В течение нескольких лет эмулятор расширял свои возможности и совершенствовался, но, скорее всего, он никогда не будет «закончен» (в конце концов, это ведь личный проект-исследование).

Когда появился @bbcmicrobot, я захотела создать нечто подобное для Retroputer. Мои навыки разработки на JS в основном ограничивались фронтендом, поэтому это будет отличным поводом получить опыт бэкенда. Только есть одна проблема: Retroputer может понимать только собственный язык ассемблера. Пока у него нет поддержки BASIC.

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

Итак, давайте приступим.
Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии5

Tesla рассказала об архитектуре чипа D1 для суперкомпьютера Dojo

Время на прочтение4 мин
Количество просмотров2K

Tesla поделилась подробностями о собственном процессоре D1, который станет основой ИИ-суперкомпьютера Dojo. Компания рассказала об архитектуре, устройстве и возможностях нового чипа.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии0

Более чем 80 средств мониторинга системы Linux

Время на прочтение12 мин
Количество просмотров315K
Ниже будет приведен список инструментов мониторинга. Есть как минимум 80 способов, с помощью которых ваша машинка будет под контролем.



1. первый инструмент — top

Консольная команда top- удобный системный монитор, простой в использовании, с помощью которой выводится список работающих в системе процессов, информации о этих процессах. Данная команда в реальном времени сортирует их по нагрузке на процессор, инструмент предустановлен во многих системах UNIX.
читать дальше
Всего голосов 94: ↑82 и ↓12+70
Комментарии68

Готовимся к собеседованию: 82 вопроса по MongoDB

Время на прочтение17 мин
Количество просмотров7.4K

С момента своего появления MongoDB успела завоевать огромную популярность благодаря своей способности обрабатывать большие объемы данных. Ее принятие только растет, впрочем, как и сам рынок, на котором она востребована. Если вы нацелены связать свою карьеру с MongoDB, то сейчас самое время. Чтобы помочь вам на этом пути, мы подготовили список часто задаваемых вопросов по MongoDB с собеседований и ответов на них.

Читать далее
Всего голосов 18: ↑9 и ↓90
Комментарии3

Tesla представила собственный аппаратный ускоритель нейросетей Dojo D1

Время на прочтение2 мин
Количество просмотров5.3K

Tesla представила чип Dojo D1 для обучения моделей искусственного интеллекта внутри своих центров обработки данных. Он выполнен на 7-нм техпроцессе и имеет вычислительную мощность 362 терафлопс.

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии2

Выбираемся из лабиринта при помощи алгоритма «поиск в ширину» (BFS) на Python

Время на прочтение8 мин
Количество просмотров15K

Учимся использовать и реализовывать на Python алгоритм поиска в ширину (BFS) для решения реальных задач.

Давайте поговорим о популярном алгоритме, который называется «Поиск в ширину» (BFS). Затем реализуем этот алгоритм, чтобы найти решение для реальной задачи: как выбраться из лабиринта.

Алгоритмы поиска применяются для решения таких задач, которые можно смоделировать как графы. Каждый узел графа – это экземпляр задачи. Каждый поисковый алгоритм начинается с узла (исходный экземпляр – состояние) и наращивает вслед за этим узлом новые (то есть, новые экземпляры задачи), решая задачу допустимыми способами. Этот процесс останавливается, как только алгоритм находит решение (успех – конечное состояние) или не может создать ни одного нового узла (провал). Среди самых популярных алгоритмов поиска – поиск в глубину (DFS), поиск в ширину (BFS), жадный алгоритм, поиск по критерию стоимости (UCS), A*-поиск, т.д. В этой статье речь пойдет о поиске в ширину.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

«I’ll be back». Новый браузер Supermium доступен для Windows XP и Windows Server 2003

Время на прочтение2 мин
Количество просмотров19K

Разработчики интернет-браузера Supermium обрадовали всех неравнодушных ценителей продукции Билла Гейтса новым обновлением: в Windows XP и Windows Server 2003 появилась возможность комфортно серфить по просторам интернета даже в 2024 году.

Читать далее
Всего голосов 51: ↑51 и ↓0+51
Комментарии54

Android, Google and free content licenses. Who is to blame and what can be done?

Время на прочтение23 мин
Количество просмотров743

The story of another ban.


Have you heard about bans on apps and developers in Google Play? This is just such a story. It’s also an attempt to collect similar cases into one place and offer some kind of plan of action to prevent Google’s unpredictable actions. It isn’t fair to be banned for the legal use of free material. Personally, I like the idea of content licenses such as CC BY-SA, which permits any use, including commercial. Thanks to such licenses, we developers have websites like StackOverflow, where I’ve been elected to be the moderator. Unfortunately, companies like Google don’t respect the ideas behind these licenses. Here's my story.

Read more →
Всего голосов 2: ↑1 и ↓10
Комментарии0

Ansible 2.0 b2. Обзор новшеств

Время на прочтение6 мин
Количество просмотров18K
image

О системе управления конфигурациями Ansible мы уже писали два года назад. Мы активно её используем в собственной практике и внимательно следим за всеми изменениями и обновлениями.

Конечно же, мы не могли оставить без внимания следующую новость: вышла в свет вторая бета-версия Ansible v2.0. Черновой вариант Ansible v2.0 был размещён на GitHub уже давно, а теперь наконец-то появился более или менее стабильный бета-релиз.

В этой статье мы расскажем о наиболее значимых нововведениях во второй версии.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии13
1
23 ...