• Два кита в трех соснах или как поставить пингвина на ноги

      Два кита



      Сначала небольшое введение, и да простят меня искушенные пользователи за некоторые упрощения.
      Разработка свободного программного обеспечения вообще и под GNU Linux в частности стоит в настоящее время на двух китах — GNU и Linux.
      • GNU устами Ричарда Столлмана пропагандирует свободное создание, изменение и выполнение программного кода, свободное ПО, юридически он выражен в лицензии GPL
      • Linux, руками программистов Линус Торвальдса, создает среду, систему в которой этот свободный код выполняется.
      Основа философии СПО в том, что человек может использовать как хочет все богатство созданного до него свободного программного кода, но при этом должен (по лицензии GPL) делать свободными и свои наработки.

      Программировать интересно, интересно и делать что-то «за идею». Основной принцип — «С миру по нитке, голому — рубашка», каждый может в свободное время чуть-чуть посоздавать общую систему и в результате количество свободного кода все увеличивается, GNU Linuх растет и крепнет… только вот конечные пользователи до сих пор, через 30 лет после появления идей свободного ПО, в основном работают с проприетарными несвободными программами даже в андроиде, который «внутри» — вполне линукс.
      В чем причина?

      Три сосны


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

        Компьютеры, даже персональные, становятся все сложнее. Не так уж давно в гудящем на столе ящике все было просто — чем больше частота, тем больше производительность. Теперь же системы стали многоядерными, многопроцессорными, в них появились специализированные ускорители, компьютеры все чаще объединяются в кластеры.
        Зачем? Как во всем этом многообразии разобраться?
        Что значит SIMD, SMP, GPGPU и другие страшные слова, которые встречаются все чаще?
        Каковы границы применимости существующих технологий повышения производительности?

        Введение


        Откуда такие сложности?

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

          Только что вернулся с конференции ПАВТ 2011 и хотел бы познакомить уважаемое хабрасообщество с современным состоянием дел в области высокопроизводительных вычислений.
          Постараюсь по возможности ссылаться на первоисточники — а именно, на статьи из журнала "Суперкомпьютеры" и материалы конференции.

          Зачем это все нужно


          Суперкомпьютеры традиционно использовались в военных и научных целях, но в последние годы в их применении произошли революционные изменения, связанные с тем, что их мощность «доросла» до моделирования реальных процессов и предметов при доступной для бизнеса стоимости.
          Все, наверное, знают, что в автомобилестроении расчеты на суперкомпьютерах используются для повышения безопасности, например так получил свои 5 звезд Ford Focus. В авиапромышленности выпуск нового реактивного двигателя по традиционной технологии — дорогостоящее удовольствие, например создание АЛ-31 для СУ-27 заняло 15 лет, потребовало создать и разрушить 50 опытных экземпляров и стоило 3,5 млрд. долларов. Двигатель для Сухой Супержет, спроектированный уже с участием суперкомпьютеров, сделали за 6 лет, 600 млн евро и было построено 8 опытных экземпляров.
          Нельзя не отметить и фармацевтику — большая часть современных лекарств проектируется с помощью виртуального скрининга , который позволяет радикально снизить затраты и повысить безопасность лекарств.
          Дальше — больше.
          Сегодня в развитых европейских странах:
          47,3% высокотехнологической продукции производится с использованием имитационного моделирования фрагментов проектируемых сложных систем или изделий;
          32,3% продукции производится с использованием имитационного моделирования мелкомасштабных аналогов проектируемых систем и изделий;
          15% продукции производится с использованием полномасштабного имитационного моделирования проектируемых систем и изделий;
          и лишь 5,4% проектируемых сложных систем и изделий производится без имитационного моделирования.

          Суперкомпьютерные технологии в современном мире стали стратегической областью, без которой невозможно дальнейшее развитие. Мощность национальных суперкомпьютеров сейчас так же важна, как мощность электростанций или количество боеголовок.
          И сейчас в мире началась
          Читать дальше →
        • OpenCL: Как заставить эту штуку работать

          image

          Очень многие, пробовавшие «на вкус» технологию использования графических ускорителей CUDA/OpenCL получили не слишком хорошие результаты. Да, тесты идут и простые примеры показывают впечатляющее ускорение, но вот когда дело доходит до реальных алгоритмов, хороший результат получить очень непросто.
          Как же заставить эту технологию работать?
          В данной статье я постарался обобщить свой полугодовой опыт бодания с технологией OpenCL под Mandriva linux и MacOS X 10.6 на задачах сложного поиска строковых данных для биоинформатики. OpenCL был выбран т. к. для Мака он является «родной» технологией (часть маков комплектуется видеокартами AMD и CUDA под ними недоступна даже теоретически), но предлагаемые рекомендации достаточно универсальны и подходят в том числе и для NVIDIA CUDA.

          Итак, что необходимо, чтобы графический ускоритель заработал?
          Читать дальше →