Тест на батерии на стар MacBook

Веднъж на месец е добре литиевите батерии на мобилните устройства, в това число и лаптопите, да се разреждат напълно и зареждат след това. Процесът обикновено се нарича калибриране и помага на зарядната електроника да се адаптира към променящия се с времето капацитет на батерията.

От няколко месеца не бях прилагал въпросната процедура на близо 18-месечния ми бял  MacBook [late 2007], въпреки ежемесечните напомняния от страна на iCal. И понеже много хора ме питат, колко време машината работи на батерии, при което обикновено цитирам наизуст времена от порядъка на “3 до 5 часа”, то използвах момента и оставих заредената до дупка батерия да се разреди при следното нетипично за мобилна работа натоварване:

  • екран: максимална яркост и забранен режим на гасене
  • твърд диск: забранен режим на гасене
  • WiFi: включен и асоцииран към домашната 802.11g мрежа; активен мрежов трафик
  • Bluetooth: включен в откриваем режим
  • аудио: поддържа се включено със свирещ iTunes
  • CPU: C2D T7500 (2.2 GHz, 4 MB L2), 5-10% натоварване от iTunes и VNC сървъра Screen Sharing
  • RAM: 2x2 GB DDR2-667 MHz в двуканален режим

През цялото време към машината беше свързан отдалечен VNC клиент (вграденият в OS X такъв), през който се виждаше заемащият почти целия екран прозорц на iTunes в DJ режим и Cover Flow изглед с всичките му интерфейсни анимации.

Равносметката е, че батерията удържа 3 ч 32 мин преди операционната система да предприеме насилствено съхраняване на системната памет и приспиване на компютъра. 52 мин по-късно светодиодът за спящ режим продължава да мига, т.е. резервният капацитет на батерията все още не е изчерпан [1].

Разбира се, едно такова натоварване в никакъв случай не може да се нарече типично при работа на батерийно захранване. Обикновено Bluetooth адаптерът стои изключен, освен ако не се налага да свалям снимки от телефона или ръцете ми са твърде потни за работа с тъчпада и трябва да използвам Bluetooth мишката. Екранът е достатъчно ярък, та да се вижда прилично и при намалена наполовина осветеност. Твърдият диск по подразбиране бива изключван, когато няма обръщения към него. С изключен WiFi и постоянно работещ твърд диск (писане на LaTeX, компилиране, преглеждане посредством скролиране нагоре-надолу на резултатния PDF, ново писане, компилиране и т.н.) съм успявал да запълня дори повече от 5 скучни часа на летище Heathrow.

Не е зле като за машина, произведена преди близо 2 години.

[1] Батерията е сравнително запазена (под 100 цикъла).

Избор

Всичко се връща — гласуваш, а дни след това те гласуват. 11 на 1 на 0. Равносметката в три прости числа на последните 5 години от живота ми. Иначе казано:

… Въз основа на резултатите от гласуването, Специализираният Научен Съвет по Радиофизика, физична и квантова електроника препоръчва на ВАК да присъди на дисертанта Христо Илиев образователната и научна степен “доктор”…

Утре започвам да прехвърлям топката в ръцете на ВАК.

Ураааа!

Fixing podcast syncing in iTunes

Just a quick iPod Touch/iPhone tip: if iTunes seems to ignore the preferences in the Podcasts tab and apparently syncs at random all or some of the available podcast episodes, do not hurry and blame Apple for it but check if there is some smart playlist that lists those episodes. In my case there is that Forgotten tracks smart playlist that finds all tracks never played, including those podcast episodes that I don’t want to sync for one reason or another. Deselecting it in the list of playlists on the Music tab brought balance to the Force and now podcasts syncing works as expected.

Скам 2 (или още смях през сълзи)

Опитите за локализация на нигерски скам с Google Translate упорито продължават:

From: Bruno Omar (b_omar01@msn.com)
Subject: Вашият партньор
Date: днес по някое време
Reply-To: bruno.omar11@yahoo.com.hk

Моите поздравления Приятелю,

Искам да се представя и този бизнес възможност за вас.
Името ми е Бруно Омар, аз работя с Бенин & минна промишленост, както и ръководителя на финансите / договор одобрение отдел.
Искам да знам дали ние можем да работим заедно?

Бих искал да използва позицията си в офиса да се препоръча като бизнес партньор на покойния изпълнител име (С Притежавани), така че да можете да получите на фонда за нашите собствени облаги.
Покойния предприемач има неплатени договор баланс за плащане на (€ 5,800,000.00 евро) за доставка и монтаж на промишлени съоръжения за нашата индустрия.

Той почина един месец след приключване на договора за проекта, без регистрирана бизнес партньор в неговото досие.

Ако Ви интересува, моля, нека си телефонни номера и имена на пълното ми даде възможност да ви даде пълна информация за това какво трябва да направя, за да получите тази сделка concluded.I Очакваме ви за бърз отговор.
Можете както и отговорите ми на този имейл: (bruno.omar1 @ yahoo.com.hk)

Ваш партньор,
Г-н Бруно Омар.

Що е то HPC?

Що е то HPC и има ли то почва у нас? Кои са тези особености на хардуера и софтуера, които правят HPC уникална по рода си област на компютърното познание?

HPC или High Performance Computing е технически термин, с който се обозначава специфичен клас от хардуерни и софтуерни технологии, както и спецификата на тяхното програмиране и използване. Обикновено към класа на HPC отнасят научните и инженерни задачи, изискващи извършването на огромна по обем обработка на данни и използващи за целта мощни (супер-)компютри, които далеч надхвърлят по производителност средностатистическия домашен или бизнес компютър. Към HPC често (и неправилно) причисляват и т. нар. High Throughput Computing (или HTC). Въпреки, че целта и при HPC, и при HTC е да се обработи възможно най-много информация за единица време, при HTC информацията обикновено постъпва под формата на множество работни единици — заявки или транзакции. Типичен пример за HPC е детайлното моделиране на климатичната обстановка с цел добиване на по-точна прогноза за времето, а за HTC — обработването на милиони заявки за търсене в огромна база данни (напр. Google). Тъй като повечето HPC задачи обработват информация под формата на масиви от числа с плаваща запетая, проиводителността при тях обикновено се измерва в милиарди операции с плаваща запетая за секунда, Gflop/s (гигафлопи за секунда или просто гигафлопси), където flop е съкратено от floating-point operation. С развитието на суперкомпютърната техника префиксът на мярката постепенно се измества от гига- към тера-, като най-бързият суперкомпютър в света, Roadrunner на лабораторията в Лос Аламос, има производителност от над 1 Pflop/s (петафлопи за секунда). При HTC производителността обикновено се измерва в транзакции за секунда, tps, със съответните степенни префикси от системата SI.

HPC се различава от обикновената изчислителна техника, както в хардуерен, така и в софтуерен аспект. Суперкомпютрите са бързи. При това, те не са просто бързи, а БЪРЗИ, като бързодействието често пъти се постига с нетрадиционни за масовата техника похвати. Като пример мога да посоча факта, че когато масата персонални компютри в България през 80-те години на миналия век са 8-битови скаларни CISC архитектури, работещи на честоти 1—4 MHz и извършващи едва десетина Kflop/s без допълнителни математически копроцесори (или транспютри), то типичният представител на суперкомпютрите от него време Cray-1 е 64-битова векторна RISC архитектура с тактова честота 80 MHz и пикова производителност от 250 Mflop/s. Въпреки, че последната изглежда смешно на фона на съвременната микропроцесорна техника, за реализиране на подобно устройство през тях години е било необходимо да се използва екзотичната емитерно свързана логика (ECL), осигуряваща висока скорост на превключване за сметка на много ниска степен на интеграция и ОГРОМНА консумирана мощност, изискваща иновативни и скъпи охлаждащи системи. Друг подход за увеличаване на изчислителната мощност, доминиращ HPC пазара и в наши дни, е едновременното използване на множество (до стотици хиляди) процесорни елементи — т. нар. масивно-паралелни архитектури. При това инженерната сложност се пренася от построяването на свръхбърз микропроцесор към измислянето на начин за ефикасно свързване на процесорните елементи. За целта обикновено се използват специализирани превключващи елементи (напр. SeaStar 2 в XT3/XT4 на Cray), осигуряващи предаването на информацията по сложна система от връзки. В зависимост от броя на свързаните процесори, свързващата подсистема може или да бъде от тип “телефонна централа” (crossbar), която осигурява директна комутируема свързаност от тип всеки с всеки (напр. IBM SP2), или информацията да се маршрутизира върху дву-, три- или повече измерна мрежа от изчислителни възли, подобно на силно структурирано и опростено подобие на Интернет. Кросбар мрежите осигуряват огромна пропускателна способност (измервана в GiB/s) по множество от независими канали и ниска латентност (времето между стартиране на операция по пренасяне на информация и нейното физическо завършване), но сложността им нараства експоненциално с броя на свързаните процесори, а разширяването им за включване на допълнителни процесори е практически невъзможно, поради което те почти не намират приложение в съвременната HPC техника. Далеч по разпространени са мрежите с маршрутизиране на трафика. Освен специализираните комуникационни контролери, широко приложение намират и мрежовите преносни среди с общо предназначение InfiniBand и Ethernet, последната главно в съвременната инкарнация с пропускателна способност от 10 Gbps.

Особеният хардуер изисква и особено програмиране. Отличителна черта на HPC софтуера е, че логиката в него е сведена до минимум, а данните са структурирани по възможно най-прост начин, позволяващ тяхната паралелна и/или векторна обработка. Корените на голяма част от програмните кодове датират от времена, когато доминиращ програмен език е бил FORTRAN 77, понятието “структуриран тип данни” е било приемано с недоумение, а на оператора GOTO не се е гледало с отвращение. По традиция известна част от HPC приложенията продължават да се пишат на FORTRAN, понятието “структуриран тип данни” продължава да буди недоумение сред определени кръгове, а операторът GOTO продължава да живее щастливо сред милионите редове програмен код. Смело може да се твърди, че кодът на един съвременен браузър е многократно по-сложен и от най-сложната програма за симулации в областта на твърдотелната физика. И въпреки това, писането на качествен и бърз HPC код е нетривиална инженерна задача и изисква много задълбочено познаване на основите на микропроцесорната и мрежова технология, лежаща в основата на съвременните компютърните архитектури.

Елементарна задчка за размисъл: защо следният код

int bigarray[DIM1][DIM2], i, j;

for (i = 0; i < DIM1; i++)
  for (j = 0; j < DIM2; j++)
    bigarray[i][j] *= 2;

се изпълнява шест пъти по-бързо (при DIM1 = DIM2 = 10000) от напълно аналогичния

int bigarray[DIM1][DIM2], i, j;

for (j = 0; j < DIM2; j++)
  for (i = 0; i < DIM1; i++)
    bigarray[i][j] *= 2;

(жокер: причините са повече от една)

Програмирането на (масивно-)паралелни машини предоставя допълнителни предизвикателства. За целта са развити няколко програмни техники и парадигми, които предлагат различно съотношение между леснотата на тяхното използване и мащабируемостта на резултатните изпълними кодове. В най-простия случай се разчита на компилатора да открие и по възможност паралелизира части от програмния код (т. нар. автоматична паралелизация), с която задача различните компилатори се справят с променлив успех. В най-сложния случай цялата грижа за комуникацията и синхронизацията между отделните изчислителни елементи е оставена на програмиста, като на последния се осигурява само стандартен набор от комуникационни примитиви (MPI, PVM и др.). Обикновено това е методът, използван в най-производителните и мащабируеми кодове. По средата на спектъра са т. нар. “data parallel” парадигми, при които се използват или специални диалекти на известни програми езици, разширени с допълнителни паралелни конструкции, напр. High Performance Fortran (HPF) или Unified Parallel C (UPC), или стандартните диалекти се разширяват с позволените в тях механизми, напр. OpenMP (реализиран като набор от #pragma директиви в C и като специално форматирани коментари във Fortran). За MPI и OpenMP ще стане дума по-нататък в следващите писания по въпроса.

Има ли HPC почва у нас? Учудващо за мнозина, но отговорът е утвърдителен. Компютрите се използват за решаване на инженерни и научни задачи в България още от времената на машините от Единната Система и СМ, “аналози” на популярни за времето си мейнфрейм машини на IBM и миникомпютри на DEC. През 90-те години на миналия век, когато връх на персоналните компютри в родината бяха грешащият при деление Pentium (а само по експота и панаири може да се види мускулестият му братовчед Pentium Pro), в различни изчислителни центрове в страната “мелят” 64-битови RISC машини (една от които кротко залежава като музеен експонат под бюрото ми във ФзФ). А откак преди година България се сдоби и с 8192-ядрен Blue Gene/P, то не остана и капка съмнение, че у нас HPC има почва. Доколко стабилна е тя, бъдещето ще покаже.