Январь 2007

Умножение матриц, серия 3: Woodcrest против Opteron, ACML против MKL, Goto BLAS против всех

Использованная в предыдущем тестировании библиотека численных методов Intel Math Kernel Library очевидно не является оптимизированной под процессоры AMD. Следовательно, нужно изучать альтернативы.

Альтернатив на сегодня видно три: это библиотека AMD Core Math Library от производителя процессора и две OpenSource библиотеки: Goto BLAS и ATLAS (Automatically Tuned Linear Algebra Software). Их и изучим.

Все бенчмарки были совершенно одинаковыми: заполнялись исходные матрицы (значениями от 0.0 до 1.0), затем вызывалась функция sgemm (для single precision) или dgemm (double), время выполнения которой и измерялось.

Кроме Dual Opteron 275, в руки попал еще сервер Dual Xeon 5140, показалось полезным сравнить две архитектуры.

Есть ли у журналистов запрет на профессию ?

Коммерсант жжот!

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

Кроме того, он совершил еще одно ужасное преступление

Кроме того, в кастрюльку были заведены два оголенных провода.
Вот ведь мерзавец! А если бы четыре провода завел? Разровняло бы ДАС по камушку!

И это еще хорошее издание. А ведь другую журналистскую продукцию мы хаваем и хаваем и хаваем. Про полоний. Про ураний. Про компьютеры. Впрочем, про компьютеры не хаваем.

И снова (и снова) о вебе и кодировках русского языка

Примерно к 2001 году вопрос с кодировками для русскоязычных WWW-сайтов казался полностью решенным: все сколько-нибудь распространенные браузеры научились кодировке Windows-1251 и только ее можно было оставить на сайтах (выдавая правильный Content-Type)

Но жизнь на месте не стоит и появилась новая беда: UTF-8. Никаких проблем с самой кодировкой нет - все поддерживают, работать несложно, можно писать многоязыковые документы.

Сейчас расцветает динамика, которую рисуют разными видами яваскрипта (document.write, element.innerHTML=...). При выводе таких блоков есть safe way - выводим все в...

Русская языка

Ехал в лифте в своем доме, читал новые правила пользования, много думал.

При поездке с собаками, входя и выходя из кабины, держите ее за ошейник.

Ну и трогательное "Кнопка «Стоп» (при ее наличии) служит для..."

Умножение матриц, серия 2: MKL против компилятора, single/double и int

Продолжаем умножать матрицы. Для начала смоделируем sgemm/dgemm: C=alpha*A*B+beta*C

Нас интересует, естественно, самый быстрый способ из изученных ранее, а вопрос заключается в разнице в скорости между float и double и разницы в скорости между простым кодом, написанным вручную, и библиотечной реализацией.

Пересчет Google PageRank: дата заморозки

Рассматривая результаты нового пересчета pagerank (не закончилось) - для каких страниц оно произошло, а для каких - нет, удалось довольно точно определить дату, на которую заморожено состояние интернета для пересчета.

PageRank пересчитали по состоянию на 13-16 ноября

  Обоснование:

О роли Яндекс.Каталога в Яндексе.Цитирования

Продолжение-дополнение предыдущей статьи:

О роли Яндекс.Каталога в Яндексе.Цитирования

В предыдущей статье осталась нераскрыта тема Яндекс.Каталога: повлияло ли наличие сайта в нем на изменение ТИЦ при декабрьском пересчете.

Пришлось написать отдельный текст на эту тему, наслаждайтесь

Яндекс.Цитирования сайтов рунета

Наваял очередную нетленку Яндекс.Цитирования сайтов рунета в 4-м квартале 2006 г - обзор изменений ТИЦ с октября по январь по ~200 тысячам сайтов. Основные выводы:
  • ТИЦ серьезно упал, примерно на четверть (если брать средние значения)
  • В наибольшей степени это коснулось сайтов с относительно высокими ТИЦ, если ТИЦ был более 100, то с вероятностью 85% он упал
  • Письма из поддержки Яндекса "тиц упал у некоторых сайтов" - это явное преуменьшение размеров проблемы
наслаждайтесь чтением

О перемножении матриц и прочих архитектурных заморочках

Осваиваю тут новую NUMA-архитектуру (пока не скажу какую, хотя многие уже в курсе). Хочется ее адекватно сравнивать с возможностями PC-CPU, т.е. опять гонять тесты. Начал с умножения матриц только на CPU.

Если оставить в стороне продвинутые алгоритмы Штрассена и Копперсмита с Виноградом, ограничившись классическим подходом с умножением "строка на столбец", то умножение матриц вполне прямолинейно: C(i,j) += A(i,k)+B(k,j) С другой стороны, входные матрицы могут быть транспонированы (одна или обе). При этом меняется pattern доступа к памяти, за счет чего ожидается некоторая разница в производительности.

Рассматривая результаты Linpack, я ожидал получить разницу между «плохим» и «хорошим» паттерном в разы. Результат превзошел все ожидания, получилась разница на полтора порядка.

Кросспост из MT в LJ

Продолжаем патчить MovableType.

Многим, вероятно, удобнее читать мои упражнения через френдленту ЖЖ. Следовательно, нужен кросспост туда. Коллективный разум предлагает два решения:

  • ljcrosspost — сделан неудобно, предполагает публикацию через выполнение тега, что означает перепубликацию при любой перевыкатке отдельных статей. Не понравилось.
  • MTLJpost сделан более человечно, публикация происходит при нажатии кнопки Save в редакторе т.е. вместе с trackback pings, нотификациями блог-поисков и еще один RPC call погоды не сделает.
Берем и ставим второй. Выясняется:
  1. Машинка глючит, если нет картинки (юзерпика), соответствующего категории. Но править это соответствие после каждого редактирования категорий - мучительно.
  2. Не хватает пары мелочей:
    • постинга тегов в ЖЖ
    • запрещения комментариев (с комментариями хочется всех загнать к себе)
Впрочем, пять минут работы напильником и готов очередной патч. Этот патч:
  1. Передает в ЖЖ теги
  2. Чуть лучше разбирается с ситуацией, когда не найден юзерпик
  3. запрещает комментарии.
Если запрещение комментирования не нужно, то из патча нужно удалить строчку
+   $lj->Setprop_nocomments($event,1);
upd: после ряда экспериментов, я матчинг юзерпика и категории вообще убрал нафиг. Странное оно и дикое

Pages