Высокая производительность → Разрядность процессоров из песочницы
Я обращаюсь к специалистам по процессорам. Есть к ним вопрос.
Они, конечно, Хабр не читают. А вдруг?

Они, конечно, Хабр не читают. А вдруг?

PHP → CThread — многопоточность для PHP с блэкджеком
В сети гуляет довольно много решений для эмуляции многопоточности в php. Чаще всего они основываются на форках, но есть и вариации на тему с использованием curl, proc_open и т.п.
Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
В результате получилась библиотека CThread.
Все встреченные варианты по тем или иным причинам меня не устроили и пришлось написать свое решение.
Набор требований у меня был следующий:
- Использование форков;
- Синхронный режим с сохранением интерфейса при отсутствии необходимых расширений;
- Многократное использование дочерних процессов;
- Полноценный обмен данными между процессами. Т.е. запуск с аргументами и получение результата по завершении;
- Возможность обмена событиями между дочерним процессом-«потоком» и основным процессом во время работы;
- Работа с пулом потоков с сохранением многократного использования, передачи аргументов и получения результатов;
- Обработка ошибок выполнения;
- Таймауты на выполнение работы, ожидание работы потоком, инициализацию;
- Максимум производительности;
В результате получилась библиотека CThread.
Высокая производительность → Disruptor — новая парадигма многопоточного программирования
На прошлой неделе компания LMAX, где я работаю, получила приз Java Duke's Choice Award 2011 за фреймворк Disruptor. Ранее об этой технологии писал Martin Fowler, известный многим читателям публикациями об объектном программировании.
В этой статье я хотела бы вкратце рассказать об этой технологии, а так же о конкретной проблеме, которую эта технология решает в компании LMAX.
В этой статье я хотела бы вкратце рассказать об этой технологии, а так же о конкретной проблеме, которую эта технология решает в компании LMAX.
Работа с видео → На выставке SIGGRAPH 2011 рабочая станция HP Z800 одновременно обрабатывала 12 потоков Full HD видео

Конечно, такой результат сама по себе рабочая станция HP Z800 показать не могла. В самом деле, даже очень мощный ПК вряд ли сможет обрабатывать одновременно 12 потоков несжатого Full HD видео, да еще и с цветокоррекцией. Все это стало возможным благодаря объединению сил (и наработок) компаний Fusion-io, NVIDIA, Thinkbox Software и Tweak Software, создавшими творческий тандем специально для выставки SIGGRAPH 2011. Разработчики оснастили HP Z800 видеоускорителем NVIDIA Quadro Plex7000 а также твердотельными накопителями ioDrive Duos (стандарт PCI Express ioMemory).
Высокая производительность → Введение в OpenCL
Эта статья посвящена основам программирования на OpenCl. OpenCl -это язык программирования на GPU/CPU, по своей структуре близкий к стандарту c99. Его развитием занимается Khronos Group, где на их сайте доступна полная документация. Во избежание полемики на тему «ну это же всё тривиально, достаточно покопаться в инете» сразу оговорюсь: в рунете информация на эту тематику практически полностью отсутствует, а в западном инете доступна весьма в разрозненном состоянии на десятке сайтов. Здесь будет приведена некоторая компиляция базовых принципов, максимально упрощающая начинающему программисту жизнь, а так же позволяющая с самого первого проекта максимально задействовать вычислительные мощности видеокарты. Людям написавшим 2-3 серьёзных программы на OpenCl это будет уже неинтересно. Статья в некотором смысле является продолжением моей прошлой статьи.
Nginx → Релиз Nginx CT++ Module 0.5 — высокопроизводительного модуля-шаблонизатора для веб-сервера
Первоначально хотел оформить как топик-ссылку, но тогда не получилось бы вставить картинку:

а она всё иллюстрирует, как нельзя лучше. Если картинка вас заинтересовала, то вы можете сразу пройти на открытый по случаю релиза сайт, или заглянуть под хабракат за комментами и некоторыми моими мыслями.
Позднее, как появится свободное время, напишу более подробную пошаговый HowTo, что вообще можно и что нужно делать с модулем, как можно представить MVC в виде: M — ваши сервисы, V — этот модуль и C — Nginx.

а она всё иллюстрирует, как нельзя лучше. Если картинка вас заинтересовала, то вы можете сразу пройти на открытый по случаю релиза сайт, или заглянуть под хабракат за комментами и некоторыми моими мыслями.
Позднее, как появится свободное время, напишу более подробную пошаговый HowTo, что вообще можно и что нужно делать с модулем, как можно представить MVC в виде: M — ваши сервисы, V — этот модуль и C — Nginx.
NoSQL → Tarantool Данные и Протокол

Tarantool это замечательное высокопроизводительное no-Sql решение, разработка компании Mail.Ru. Исходники
Данное решение позволяет использовать как режим key/value, так и выборку множества записей в рекордсет по одному или нескольким критериям (полям поиска). Аналогов в рунете и не только, я пока не встречал. С натяжкой можно сравнить редис. Но в редисе — списковые данные и их нельзя выбирать по ключу. Судя до утверждениям разработчиков, скорость доступа по ключу превосходит memcache, при этом еще в бэдграунде осуществляется постоянное сохранение данных на диск. Но к сожалению, данная разработка имеет единственный perl клиент для доступа к данным, из-за чего не имеет такой популярности, как например у redis или memcache.
В doc/box-protocol источников есть описание Протокола, которое я в настоящее время переработал для написания клиента на Си и PHP. Изучив Протокол, вы можете реализоать нативный клиент на любимом Вам языке. Надеюсь, данная статья в этом Вам пригодится.
NoSQL → Первый опыт работы с Handler Socket & php_handlersocket

Немного вскружилла голову статья Использование MySQL как NoSQL — История о том, как достичь 750,000 запросов в секунду (Перевод моего друга Вадима). Есть и другие материалы по этой теме. И вот дошли руки до экспериментов.
Под PHP разработано три разных клиента:
extension code.google.com/p/php-handlersocket/
PEAR openpear.org/package/Net_HandlerSocket
PHP native github.com/tz-lom/HSPHP
Ниже приведены мои впечатления о первых экспериментах.
Высокая производительность → libscgi — эффективное решение для простых и быстрых скриптов
Очень часто необходимо реализовать простое легкое решение, которое должно отработать довольно быстро. А с использованием технологии AJAX это стало еще актуальнее. Это может быть как скрипт автокомплита, скрипт специфического поиска, вывод информации из справочника. Ранее использовались cgi скрипты. При больших нагрузках они оказались не очень эффективными и были разработаны протоколы fcgi и scgi. Следует заметить что производительность scgi сервера довольно-таки высокоя (более 1500 запр/сек) и памяти занимает всего 600K.
Протокол Simple Common Gateway Interface (SCGI) — это протокол по взаимодействию приложений с веб (http) серверами. Большинство современных WEB-серверов (Apache/nginx/lighttpd) имеют встроенную поддержку scgi. Ниже дано краткое описание использование простой библиотечки, которая представляет собой scgi сервер.
Исходники тут.
Протокол Simple Common Gateway Interface (SCGI) — это протокол по взаимодействию приложений с веб (http) серверами. Большинство современных WEB-серверов (Apache/nginx/lighttpd) имеют встроенную поддержку scgi. Ниже дано краткое описание использование простой библиотечки, которая представляет собой scgi сервер.
Исходники тут.