Рубрика «высокая производительность» - 147

В статьe о dCache рассказано о том, как использовать его в качестве NFS сервера. Но функциональной совместимости с существующими клиентами недостаточно, чтобы системой можно было пользоваться. Производительность тоже должна быть на высоте. Рабочей лошадкой NFS протокола является ONCRPC протокол. В dCache мы используем собственную реализацию, основанную на grizzly nio framework.

Немного истории для молодых

ONC RPC (Open Network Computing Remote Procedure Call) — протокол, созданный Sun Microsystems в конце 80х и опубликован в 1995г вместе с NFSv2. ONCRPC получил быстрое распространение и широко использовался, пока в начале 2000 не был вытеснен модными альтернативами, как CORBA, SOAP, а позже REST и JSON-RPC. Тем не менее, ONCRPC всё ещё используется, где простота и скорость важнее моды — в сетевых файловых системах.

Реализация

Чтобы не изобретать очередной велосипед, вначале мы использовали реализацию Remote Tea, но вскоре столкнулись с ограничениями, которые не могли легко решить: IPv6, GSSAPI, NIO. Так что велосипед пришлось изобретать, но не с нуля. Мы максимально сохранили совместимость с RemoteTea и адаптировали уже написанный код.

Читать полностью »

Пакеты numpy и scipy предоставляют прекрасные возможности для быстрого решения различных вычислительных задач. Концепция универсальных функций (ufunc), работающих как со скалярными значениями, так и с массивами различных размерностей, позволяет получить высокую производительность при сохранении присущей языку Python простоты и элегантности. Универсальная функция обычно используются для выполнения одной операции над большим массивом данных, что идеально подходит для оптимизации с помощью SIMD-инструкций, однако мне не удалось найти готового решения, основанного на свободном программном обеспечении и позволяющего использовать SIMD для вычисления в numpy таких математических функций, как синус, косинус и экспонента. Реализовывать алгоритмы вычисления этих функций с нуля совсем не хотелось, но к счастью в интернете нашлось несколько свободных библиотек на языке «С». Преодолев лень сомнения, я решил написать собственный numpy-модуль, предлагающий универсальные функции для синуса, косинуса и экспоненты. За подробностями и результатами тестов добро пожаловать под кат.
Читать полностью »

Пожалуй, стартапы — это знаковое явление современного бизнеса, движущая сила не только в своих «профильных» индустриях, но и на комплементарных рынках. Коммерческая недвижимость обязана им коворкингами — офисами-общежитиями, предприятия общественного питания — сотнями литров «американо» навынос, а IT — новыми компактными решениями «все-в-одном», недорогими, эффективными и быстро развертываемыми одновременно. Болезнь роста наступает у стартапов внезапно: казалось, еще вчера энтузиастам было достаточно пары более-менее производительных ноутбуков, а сегодня поток задач, объем данных и число пользователей требуют всерьез задуматься об IT-оснастке молодого бизнеса.

В данном случае компания Dell идет от задач. Есть новый рынок? Есть потребность в небольших комплексных решениях? Получите и распишитесь — Dell PowerEdge VRTX, первое комплексное серверное решение, предназначенное для компаний среднего и малого бизнеса. Кстати, идею создания платформы разработчики почерпнули у самих пользователей. На площадке для обмена идеями IdeaStorm один из них высказал мысль о необходимости создания нового форм-фактора серверных стоек. Было справедливо замечено, что стартапы не всегда располагают отдельным помещением для сервера, а в общей с рабочими местами комнате большой серверный шкаф попросту лишний. Идея пользователя заключалась в том, чтобы создать новый стандарт стоечной платформы для малого и среднего бизнеса, который бы предполагал более компактные размеры, меньшее энергопотребление и снижение уровня активного охлаждения – шум вентиляторов мешает сосредоточиться. Пользователь предложил модифицировать стоечный стандарт U в эдакий Mini U, который был бы минимум в два раза меньше в глубину и высоту. В такую стойку в идеале должны помещаться сервера, свитчи, роутеры, ИБП, кабели и т.п. И, главное, новый стандарт должен быть открытым, чтобы на него ориентировались производители оборудования. Так вот, Dell PowerEdge VRTX создан именно под эти требования. Что это за платформа, каковы ее возможности, ключевые особенности и возможные сферы применения?
Высшая ступень
Читать полностью »

Вы пробовали заказать в Макдональдсе жаренного на орудийном шомполе поросенка с домашним вином и, на десерт, девушку рядом с вами за столиком, для приятной беседы во время трапезы? Даже не думали об этом?? Вот-вот — статья как раз об этом, о стереотипах программиста и лени, двигающей прогресс. А если серьезно — в статье мы напишем очень полезный многим высокопроизводительный сетевой сервер на PHP за пару часов. Я совершенно серьезно :-)
Производительный сетевой сервер на PHP
Читать полностью »

В IBM Zurich рассказали, как работает «электронная кровь»IBM продолжает экспериментировать с технологиями, напоминающими принципы работы человеческого мозга. Ранее уже сообщалось о чипах для нейрокомпьютера с кремниевыми аналогами нейронов и синапсов, а также о симуляции работы человеческого мозга с помощью таких чипов.

На прошлой неделе компания IBM организовала пресс-тур по лабораториями научно-исследовательского центра IBM Zurich, где сконцентрированы основные исследования в области «когнитивных систем». Это работа над компьютерами далёкого будущего, производительностью в петафлопсы, способных не только выполнять запрограммированные команды, но и воспринимать окружающую действительность, выносить суждения, общаться на естественном человеческом языке и обучаться на своем опыте.
Читать полностью »

Введение

В этой статье я хочу рассказать о достаточно очевидном, как мне кажется, способе фильтрации dns amplification attack, и о небольшом модуле, который был написан для реализации идеи.

О том, что такое dns amplification attack, писалось уже не раз, например здесь; многие с этим сталкивались, многие боролись, кто-то более успешно, кто-то менее. Атака строится на отправке DNS запроса к какому либо DNS серверу с подставленным ip адресом источника, равным ip адресу жертвы. Ответ от DNS сервера практически всегда больше, чем запрос, особенно учитывая, что атакующим обычно выполняется ANY запрос. AAAA записи — уже не редкость, SPF и другая информация в TXT записях, все это позволяет достаточно легко получить усиление в 5 и даже более раз. Для атакующего это выглядит очень заманчиво, можно устроить хороший dos, даже не имея большого ботнета. Можно очень долго рассуждать, почему возможен спуфинг ip адресов в Интернете, но реалии таковы, что он все еще возможен, поэтому на сегодняшний день задача затруднить использование своих DNS серверов в проведении подобных атак представляется весьма актуальной. Замечу также, что в данной атаке возможно использовать как авторитативные dns сервера, так и публичные резольверы; предлагаемое решение тоже может использоваться в обоих случаях.
Читать полностью »

Предыдущий пост посвященный производительности, описывал Pony ORM, показавший фантастические результаты по сравнению с Django ORM и SQLAlchemy.

Впечатленный столь неординарными результатами и озабоченный производительностью собственного проекта, я решил внедрить Pony ORM в свой проект. Что из этого получилось, см подкатом.

Читать полностью »

Новая 280 мегаваттная «солнечная» электростанция может работать в течение 6 часов после заката

На днях эта электростанция, получившая название Solana, успешно прошла «генеральную репетицию» после чего станцию признали пригодной для коммерческого использования. К слову, Solana (создала эту электростанцию компания Abengoa) является одной из крупнейших «солнечных» электростанций, где используются параболические зеркала. Размеры станции очень немаленькие: 3200 параболических зеркал, которые занимают 7,8 квадратных километров.

Читать полностью »

За время моей работы, на должности DBA, я сталкивался с широким кругом задач. Одни задачи требовали монотонной работы, другие сводились к чистому креативу.

Самые креативные задачи, которые я могу сейчас вспомнить, так или иначе, затрагивали вопросы оптимизации запросов.

Оптимизация – это, в первую очередь, поиск оптимального плана запроса. Однако, что делать в ситуации, когда стандартная конструкция языка выдает план, который очень далек от оптимального?

Именно с такой проблемой я столкнулся, когда я применял конструкцию UNPIVOT для преобразования столбцов в строки.

Выход был один – необходимо было найти для UNPIVOT более эффективную альтернативу…
Читать полностью »

За время моей работы, на должности DBA, я сталкивался с широким кругом задач. Одни задачи требовали монотонной работы, другие сводились к чистому креативу.

Самые креативные задачи, которые я могу сейчас вспомнить, так или иначе, затрагивали вопросы оптимизации запросов.

Оптимизация – это, в первую очередь, поиск оптимального плана запроса. Однако, что делать в ситуации, когда стандартная конструкция языка выдает план, который очень далек от оптимального?

Именно с такой проблемой я столкнулся, когда я применял конструкцию UNPIVOT для преобразования столбцов в строки.

Необходимо было найти для UNPIVOT более эффективную альтернативу. И такая альтернатива была найдена.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js