2011

О Почте России: трекинг

Понедельничная жалоба в мировое пространство помогла и в среду вечером я увидел такой вот трекинг:
Я очень удивился по двум причинам (собственно, достаточно первой):
  • Я ничего не получал!
  • Тайминг странный - если 27-го ушло с районной сортировки, то в лучшем случае 28-го в нашем отделении, в идеальном случае они в тот же день выпишут извещение, 29-го принесут и в тот же день получу.
Пошел с этими соображениями вчера на почту, они удивились, для вида - поискали, не нашли.

Сегодня повторил, утром народу не было вовсе, поискали уже не для вида, нашли во входящих вчера вечером, ну и отдали мне. То есть вчера днем моего пакета у них просто не было, для вида ищи или не для вида.

Мораль: Если на клетке слона прочтёшь надпись буйвол , не верь глазам своим. Помимо обычного раздолбайства, у меня есть конспирологическая версия: в ПР за улучшение сроков доставки полагается премия, отчего и пометили залежавшееся как выданное досрочно.

Напишу им на линию качества, посмотрим что ответят.

Q: переносимые имена файлов в локальных кодировках (C++)

А вот, извиняюсь, вопрос.

Вот есть имя файла в национальной кодировке и я его хочу fopen(). На Винде и на Маке одним куском кода (хе-хе).

Насколько я сумел это изучить, ситуация такая:

  • Win32: или я отдаю в fopen() 8-битную кодировку (1251), или в _wfopen() в wchar_t (UCS-16?)
  • Mac: отдаем в fopen() UTF-8 и нам щастье
  • Linux: не знаю, пока руки не дошли.
Но это все с русским, который представим в виде 8-бит. А с китайским? Сдается мне, что в винде это только через _wfopen() получится.

Вопрос: есть какой-то совместимый способ, одинаковый на всех помянутых системах, или так и придется #ifdef WIN32...?

Об исключениях (C++)

Я не люблю C++-ные exceptions (за второй поток управления), как следствие - стараюсь их не использовать, а если использую, то перехватываю только те, которые порождает мой код. Как следствие, правил хорошего тона в этой области не знаю.

Возник вопрос, как правильно поступать. Вот есть такой примерно код:

int some_class::some_function(std::filebuf& buf)
 
  try {
      ....
      buf.sgetn(....);
      .....
      return 0; // OK
  }
  catch (my_own_exception_type t) {
        аккуратно_склеить_ласты();
        return errorcode;
   }
}
Вопрос: должен ли я в подобном коде ловить исключения, порожденные std::filebuf? Ну там не смог он ничего прочесть? А вообще все исключения? Как требуют понятия хорошего тона?

Должны ли быть эти правила хорошего тона разными в таких двух случаях

  • Этот самый std::filebuf - на самом деле хранится внутри класса, где-то раньше был создан/открыт и все такое. То есть это наш сукин сын.
  • Этот самый IO-хэндл (std::filebuf) передан нам снаружи т.е. это чужой сукин сын.
?

P.S. Нашелся йузер у которого для файлов с SD-читалки не работает std::filebuf IO. Linux, холст, масло....

О либерализации для ИП

Мне тут указали на запись в блоге Эльбы, дескать ИП-одиночки (без сотрудников) больше перед пенсионным фондом не отчитываются.

Пошел читать доки, сам закон представляет собой сборник патчей к предыдущим и понять его самостоятельно невозможно с первого раза, но я осилил, нужная строчка патча выглядит так:

2) в статье 8:

а) в пункте 1:

в абзаце первом слова ", в том числе физическими лицами, самостоятельно уплачивающими страховые взносы" исключить;

(ну и далее про "в том числе физических лиц").

Действительно, больше эти 4 страницы бумаги не подаем, причем за 2011-й год - тоже (т.к. это делать надо было после 1 января, а тогда закон уже вступит в силу).

Бессмысленность этой отчетности - на 4 листах бумаги 8 содержательных цифр, сколько начислено и сколько уплочено, причем они одинаковые у всех ИП страны - меня еще в прошлом году удивила.

Раз уж занесло на Клерк, почитал там еще.

О Почте России (Москвы)

Москвичи!

А у Почты России - предновогодний запор, не знаете?

У меня посылка с Гонконгу - "покинула место международного обмена" 18 декабря и все. Обычно за неделю она по Москве до меня доезжала, а тут даже следующий хоп еще не нарисовался (обычно он через 1-2 дня после таможни).

Не EMS, обычная почта.

У кого еще так?

Update: судя по буре в комментах, запор

О Galaxy Note

Армянское радио спрашивают а как там Galaxy Note. И действительно, штука у меня уже четыре недели.

Отвечаем:

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

Плюсы

  • Размер мне нравится. В карман рубашки лезет, чего еще желать. Возможно, еще дюйм диагонали был бы к месту. А может быть и нет.
  • Экран яркий, очень яркий (если на максимуме) и вообще нормальный. Под микроскопом не смотрел, есть там пресловутый PenTile или нету - мне неинтересно.
  • Стилус очень к месту (но я контужен в голову наладонниками с WinCE). Писать от руки в S-Memo вполне получается, да задержка появления линии есть, но не раздражает. Набирать на экранной клавиатуре стилусом тоже вполне удобно. Собственно, я понимаю как использовать Swype со стилусом, но не понимаю как пальцем.
  • Swype очень радует, когда набираются знакомые ему слова.
  • Батарея большая. Заряжаю раз в 2-3 дня обычно (были сюрпризы о которых ниже). Батареи хватает, чтобы много часов трепаться по скайпу over WiFi (часовой разговор - минус процентов 10). Моего предыдущего наладонника хватало минут на 15, даже когда батарея там была еще жива (сейчас ее хватает на полчаса жизни прибора).
  • Не тормозит. Совсем, то есть вообще ничего не раздражает.
  • Сменная (юзером) батарея т.е. можно например иметь с собой заряженную.
  • Родная обложка очень удобна, во всяком случае, если не использовать аппарат как телефон (а я и не использую).
  • GPS/Глонасс работает отлично, ловит быстро (я помню про обещание погулять с двумя приборами, но все руки ноги не доходят).
Как телефон (не скайповский) я этот прибор не использую и сказать про него ничего не могу. Ну то есть звонил пару раз, звук громкий и чистый, а что там по качеству приема и прочего - не знаю.

Не рутил. In-app баннеры раздражают временами, но не настолько, чтобы адблочилку ставить. А больше вообще низачем не надо вроде бы.

Минусы

Об AMD 7970 и терафлопсах

Я тут, со всей этой суетой предновогодней, пропустил анонс HD7970, сегодня только прочитал.

Очень хотелось, но кажется терафлопса (на DP) на одной карте таки не будет. Т.е. формально там что-то в районе 950 Gflop/s на штатной частоте, вроде можно разогнать где-то до 1100Mhz (а там на DP аккурат один килофлопс на такт: 2048 юнитов, 512 DP-операций, уможаем на 2 т.к. MAD), но маловероятно, что реальная эффективность на DGEMM будет выше 90%, а на HPL - выше 75-80. Потому что оверхед таки есть, на DMA, да много на что (на 6990, например, DGEMM получается эффективнее 90% только если найти те правильные ядра, которые с PCIe наиболее эффективно работают, по меньшей мере на оптеронах жизнь именно так устроена).

А жаль, счастье было так близко! Терафлопс на десктопе - это хороший такой рубеж.

Вместе с тем, интересно, насколько тамошние юниты - скалярны, из имеющихся в сети описаний я так и не понял. Могут ли они исполнять разные инструкции одновременно? Есть ли какие-то ограничения (загрузка из памяти по соседним адресам, например)?

Ибо если они совсем независимы (просто такой multi-core девайс, с регистрами, локальной памятью доступной группе ядер, ну и медленной глобальной памятью) - то это совсем другой разговор.

О вычислениях

Понастраивал тут кластер, добился для 12 нодов эффективности около 70%, на чем (заказчик) и успокоился.

Но все эти дни не отпускала такая вот простая мысль:

  • Вот значит кластер, в нем 7U Blade-серверов (набивка неполная, мест на шасси 10) плюс еще 1U "управляющего фронтенда", OpenMPI, подбор топологии и размеров задачи, чтобы коммуникации и вычислительная моща были сбалнсированы (а уже для 12 нод, без опыта - пришлось повозиться, хотя конечно можно было бы просто оставить подбираться на месяц и помешивать).

    Ну и стоит - не знаю сколько, но так подозреваю, что заметно за $100k.

  • Но те же 1.7 терафлопса получаются на половинке юнита (а добив памяти и увеличив задачу - на той машине уже за 2 Tflop/s получили). Ну ладно, на целом юните, если не увлекаться и просто пихнуть две HD6990 в подходящий корпус. И, по ощущениям, гемороя с отладкой какбэ не меньше. Стоить будет - ну скажем $10k за сервер и еще $2k за две видеокарты.

    Ну хорошо, пусть даже mainstream-решение: 4-GPU-Tesla (1U) и два 1U-сервера. И даже IB (на две ноды - можно без свитча - будет несколько сотен за 40Gbit порт). Но сбалансировать две ноды сильно проще чем 12, я проверял.

    Такой мейнстрим стоить будет тоже не $100k+, а 30-40. Электричества жрать не 6 киловатт, а два. А на 4xTesla те же 1.7 GF

Ну то есть понятно, GPGPU еще не везде мейнстрим, особенно на AMD. Но посмотрев на все это вживую - никакой идеи считать что-то научное на "обычных компьютерах" - у меня больше не возникает.

P.S. С удовольствием приму участие в настройке какого-то кластера с теслами. Чисто за интерес.

Q: Infiniband timeout

А вот, я извиняюсь, вопрос (на мое предложение никто толком не откликнулся, приходится зарабатывать эти деньги самому). Дано:

  • Infiniband-switch (на шасси Blade-сервера), Mellanox-какой-то там, OEM (SuperMicro, если это существенно).
  • 12 blade-серверов, воткнутых в этот свитч каким-то внутренним коннектом. На серверах карты Mellanox ConnectX-какой-то, по одной штуке на сервер.
  • И еще один внешний сервер, с двухпортовой IB-картой, тоже Mellanox.
  • На всем этом стоит CentOS 5.4 с OFED-1.5.3
IB используется только для (Open)MPI, никакого IPoverIB нету, для IP - отдельная 10G/1G-сеть.

Все включилось и заработало как-то само, ну вот только OpenSM запустили, так и завелось. И, в-общем, работает, НО:

Периодически, собственно при запуске HPL на всех узлах кластера, узлы отваливаются. Не каждый раз, не один и тот же узел, но все-равно раздражает ужасно. Сообщение всегда одно и то же: The InfiniBand retry count between two MPI processes has been exceeded (и далее - длинный рассказ где чинить). Значения таймаута - стандартные.

Вопрос, собственно, простой: это обычное поведение при default-таймаутах и маленьком кластере или мне надо, вместо увеличения таймаута, искать проблемы (обновлять драйвера, тыкать блейды в другие слоты и т.п.)? Update: после перетыкания проблемных блейдов местами - проблема ушла. Наука о контактах!

Q: Infiniband и FreeBSD

Читаю тут Гугл про Infiniband (по случаю вчерашнего поста) и внезапно выяснил, что 2-портовые карты на eBay продаются вообще по $22 (+ доставка, две карты получаются чуть меньше $100)

Так как я давно вынашиваю мысль поднять дома линк быстрее 1Gbit/s на небольшом пятачке вокруг рабочего стола, я сильно возбудился. Но есть вопросы:

  1. Верно ли я понимаю, что CX4-кабель для Ethernet и Infiniband MicroGigaCN (как его называет Mellanox) и просто банальный 4xSAS (SFF-8470) - это все одно и то же?
  2. Есть ли драйвера для Mellanox Infiniband под FreeBSD9? Или таки светит мне Linux на NAS?
  3. Верно ли я понимаю, что взяв три 2-портовые карты (1-портовых нету) я могу 3 машины соединить в P2P-сеть и внутри каждой пары будут искомые 10G (после вычета оверхеда - 8G data)? В каждой паре заведу свою IP-подсеть, роутинга не надо. Что в такой конструкции будет с subnet manager, можно ли OpenSM-у сказать "этот интерфейс не твой"?

Pages