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

      Оффтоп


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


      Введение


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

      Нажми и прочитай про самый быстрый BFS в мире!
      • +13
      • 2,9k
      • 1
    • Разреженные матрицы: как ученые ускорили машинное обучение на GPU

        В начале декабря исследователи из OpenAI представили библиотеку инструментов, которая поможет ускорить обучение нейронных сетей на GPU от Nvidia за счет использования разреженных матриц. О том, с какими трудностями сталкиваются разработчики нейронных сетей и в чем основная идея решения от OpenAI, расскажем далее.

        Читать дальше →
      • Перспективы эволюции жестких дисков: передовые технологии и трудности реализации

          Для Western Digital 2017 год ознаменовался целым рядом громких премьер. 6 апреля мы анонсировали обновленный флагман в линейке специализированных накопителей для видеонаблюдения WD Purple емкостью 10 ТБ, а уже 19 мая были представлены 10-терабайтные модели серий WD Red и WD Red Pro, ориентированные на персональное использование и эксплуатацию в составе корпоративных NAS. Осень также не осталась без свежих релизов: в сентябре начались продажи WD Gold на 12 ТБ, а уже в октябре мир увидел первые винчестеры на 14 ТБ, выпущенные на рынок под маркой HGST Ultrastar Hs14.

          Все это стало ответной реакцией на растущие потребности ИТ-предприятий: бизнес остро нуждается в увеличении плотности хранения информации, и с каждым годом аппетиты компаний лишь растут. Вопрос в том, где тот предел, достигнув которого мы сможем уверенно заявить: «Пришло время искать принципиально иное решение задачи, потенциал жестких дисков полностью исчерпан». Об этом мы и поговорим в сегодняшней статье.
          Читать дальше →
        • Как я придумывал и применял формат хранения результатов экспериментов Measurelook

          В силу специфики научной деятельности мне нужно замерять время работы алгоритмов и строить по получившимся данным графики. Раньше процесс выглядел так:


          1. Алгоритм подготовлен.
          2. Запуск эксперимента, выходные данные идут в лог.
          3. Перенос данных в эксель.
          4. Постобработка: разбить, группировать, отсортировать.
          5. Строим график, а он кривой — ошибка в эксперименте, переход на шаг 1.

          Первая проблема — просто посмотреть как прошел эксперимент занимало очень много времени.


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


          Меня как программиста всегда раздражала необходимость «ручной работы». Да график готов, но мы еще что-то вручную подвинем, там перекрасим, тут подрисуем. Каждый раз когда приходят новые данные этот процесс приходится повторять. Третья проблема — перестроение графиков должно быть полностью автоматизированным.


          Для решения озвученных проблем я придумал формат хранения данных в JSON и назвал его Measurelook. В этой статье я расскажу о Measurelook и о его применении в подготовке научной публикации.


          Читать дальше →
        • Список полезных идей для высоконагруженных сервисов

            В этой статье я решил собрать сборную солянку из советов о том, как разрабатывать высоконагруженные сервисы, полученных практическим путем. Для каждого совета я постараюсь приводить небольшое обоснование, без подробностей (иначе статья бы получилась бы сравнима по размеру с войной и миром). Поскольку обоснований я буду приводить не очень много, не стоит воспринимать эту статью, как догму — в каждом конкретном случае приведенные здесь советы могут быть вредны. Всегда думайте своей головой перед тем, как что-то делать.

            1. Думайте своей головой и проверяйте факты


            Это самое важное. Для вас не должно существовать безусловных авторитетов. Если кто-либо говорит полную чушь, или говорит что-то, что противоречит вашей практике — не прислушивайтесь к таким советам, и не важно, насколько этот человек известный и уважаемый. Если вы разрабатываете большую систему, и она не будет работать хорошо, то спрашивать будут с вас и в данном случае «мы следовали лучшим мировым практикам» оправданием не является. Умение применять нужные технологии в нужном месте и делает вас ценным специалистом, а не слепое следование чьим-то советам — для этого как раз квалификации не требуется.
            Читать дальше →
          • Два года успешного использования Edition-Based Redefiniton в базах Oracle

              Хранимый код в базе? Не смешите, на дворе 2017 год!


              В этом году бренду QIWI исполнилось 10 лет. За это время в нашей основной транзакционной базе накопилось более чем 130 тысяч строк хранимого PL/SQL кода. На Хабре регулярно встречаются статьи о том, как различные команды разработчиков категорически не используют хранимый код в БД, стараясь убрать излишнюю нагрузку с БД и таким образом удешевить систему. По этой теме можно долго дискутировать, и такая точка зрения опровергается, например, вот в этом видео.

              Что бесспорно — хранимый PL/SQL код традиционно имел один существенный минус: релиз PL/SQL программы требовал остановки сервиса, поскольку процесс компиляции этого кода должен был получить эксклюзивную блокировку в словаре БД (так называемый library cache pin). Не вовремя запущенная случайная рекомпиляция могла подвесить всю систему. Приходилось регулярно выделять технические окна для релиза PL/SQL кода. Заверенные скриншоты жалоб наших возмущённых клиентов, попавших в такие окна, бережно хранятся в наших архивах. Однако не прошло и 20 лет от создания PL/SQL, как Oracle этот недостаток если не устранил полностью, то существенно смягчил.

              Welcome to Oracle Edition-Based Redefinition


              Мы не будем приводить детальные примеры кода с использованием Edition-Based Redefinition, а опишем несколько ключевых пунктов проекта по его внедрению. С некоторой натяжкой этот механизм, который принято сокращать до EBR, можно считать системой контроля версий объектов БД внутри самой БД. Теперь приложения способны работать с разными версиями одних и тех же процедур, пакетов и представлений. Однако в БД, кроме кода, есть еще и структуры данных в виде таблиц, и Oracle пришлось придумать способ межверсионной трансформации как самих таблиц, так и данных в них.
              Читать дальше →
              • +11
              • 1,7k
              • 4
            • AdBlock похитил этот баннер, но баннеры не зубы — отрастут

              Подробнее
              Реклама
            • Как я написал приложение, которое за 15 минут делало то же самое, что и регулярное выражение за 5 дней

              • Перевод

              От переводчика


              Не так давно столкнулся с проблемой поиска набора слов в большом тексте. Разумеется главной проблемой стала производительность. Поиск готовых решений порождал больше вопросов, чем давал ответов. Часто я натыкался на примеры использования каких-то сторонних коробок или онлайн-сервисов. А мне в первую очередь нужно было простое и легкое решение, которое в дальнейшем дало бы мысли для реализации собственной утилиты.

              Несколько недель назад вышла замечательная англоязычная статься об open-source python-библиотеки FlashText. Эта библиотека предоставляла быстрое работающее решение задачи поиска и замены ключевых слов в тексте.

              Т.к. на русском материалов подобной тематики не так много, то я решил перевести эту статью на русский. Под катом вас ждет описание проблемы, разбор принципа работы библиотеки а так же примеры тестов производительности.
              Поехали
            • Первый в России митап по Apache Ignite, 12 декабря

                Друзья, приглашаем всех на посвящённый Ignite митап 12 декабря в московском ImpactHub (метро Китай-Город). Такие мероприятия мы хотим регулярно проводить в Москве и Санкт-Петербурге, и надеемся, что они станут местом встреч российских пользователей и разработчиков Ignite, специалистов по In-Memory Computing, а также всех, кто интересуется распределенными системами. Здесь можно будет обсудить любые вопросы, связанные с работой или развитием экосистемы.

                На первом митапе мы хотим познакомить вас российскими банком и крупным телекомом, использующими Ignite каждый день.

                Программа встречи:

                — 18:30: Сбор гостей;
                — 19:00: Рассказ о внедрении Apache Ignite в Сбербанке (Михаил Хасин, Сбербанк);
                — 19:45: «Как мы построили Complex Event Processing крупного телеком-оператора на Apache Ignite» (Виктор Ходяков, Gridfore);
                — 20:30: Секретный доклад;
                — 21:15: Общение в кулуарах, заключительный кофе;
                — 22:00: Окончание.
                Читать дальше →
              • In-Memory Computing Summit 2017 San Francisco

                  Не так давно, в конце октября, в Кремниевой долине прошел очередной In-Memory Computing Summit, одним из организаторов и спонсоров которого стала компания GridGain.

                  Теперь можно получить бесплатный доступ к видеоматериалам и слайдам, которые поделены на два раздела: основные тезисы и доклады.



                  На саммите было более прочитано более 40 докладов по распределенным системам и вычислениям в памяти. Среди выступавших были сотрудники компаний GridGain, Percona, AMY Robotics, Hazelcast, VoltDB Inc., Dell и других.

                  Далее мы отдельно упомянем несколько избранных докладов.
                  Читать дальше →
                • Цена JavaScript

                  • Перевод
                  • Tutorial
                  По мере того как наши сайты всё сильнее зависят от JavaScript, приходится расплачиваться за то, что мы отправляем пользователям. Иногда цена не видна с первого взгляда. В этой статье я объясню, почему полезно проявить немного дисциплины, если вы хотите ускорить загрузку и производительность на мобильных устройствах.

                  tl;dr: меньше кода = меньше парсинг/компиляция + меньше передача + меньше распаковка

                  Сеть


                  Когда большинство разработчиков думают о расходах на JavaScript, они размышляют о времени скачивания и выполнения. Отправка большего количества байт JavaScript занимает тем больше времени, чем тоньше канал с пользователем.



                  Это может стать проблемой даже в странах первого мира, поскольку эффективный тип сетевого соединения у пользователя необязательно 3G, 4G или WiFi. Вы можете сидеть в кафе с WiFi, но быть подключённым к хотспоту через сотовую связь со скоростью 2G.
                  Читать дальше →
                  • +17
                  • 10,2k
                  • 2
                Самое читаемое