середа, 12 грудня 2012 р.

Місяць -- орбіти чужих світів

"Луна-10", разом із орбітальним блоком
(вверху) та власне штучний супутник
(внизу) (с) "Советская космонавтика:
Фотоальбом", 1981
СРСР зміг завоювати ще одне "вперше" -- вперше вивів космічну станцію на орбіту іншого небесного тіла. Хоча епоха лідерства, особливо -- безумовного (з точки зору обивателів), добігала кінця, але інерція -- страшна сила :-) Попереду було ще багато видатних, в тому числі -- не перевершених до цих пір, досягнень. При чому, не тільки формальний (як "Луноходи" -- єдині телекеровані роботи на Місяці), так і фактично (посадки "Венер" не повторені ніким, проби "Піонера-Венера", які випадково пережили посадку не рахуємо).

Для того, щоб завоювати пріоритет у виходу на орбіту нашого природного супутника, використали вже відпрацьований і відносно надійний блок Е-6, який забезпечив м'яку посадку на Місяць, замінивши посадочний апарат на "бочку з приладами", "найпростіший супутник Місяця". Назвали цю конструкцію Е-6С. Успіху передував лише один невдалий запуск -- 1 березня 1966 року станція застрягла на опорній орбіті, була обізвана (секретність...)  Космос-111, і 3-го березня впала назад. 

четвер, 29 листопада 2012 р.

Міграція OSS в Lustre

Іноді виникає потреба перенести дані з OSS кудись. Оце "кудись" залежить від мотивів перенесення. OSS може потребувати обслуговування, може заплановано апгрейд. Він може бути в аварійному стані, і дані слід терміново з нього забрати. І тому подібне. 

Процедура такої міграції в Lustre є, вона добре описана в документації, доволі проста та надійна. Хоча, звичайно, страшно :-). Довелося робити її на практиці. Нижче описано міграцію з OSS на прикладі нашої системи, нічого суттєво нового, в порівнянні із документацією немає, просто "приклад з життя".

понеділок, 12 листопада 2012 р.

Вступ до технології CUDA

7 листопада 2011 року, рік тому, я розповідав про CUDA на семінарі нашого інституту, присвяченому суперкомп'ютерним обчисленням. Однак, з того часу ніяк не вдавалося зібратися запостити розповідь тут. Цього року під час того ж семінару, знову повернувся до теми CUDA, акцентуючи увагу на готових рішеннях -- бібліотеках. Паралельно усвідомив, що відтягувати далі не варто.

Презентація доповіді 2011-го року можна скачати тут. Звичайно, з того часу вона встигла вже дещо застаріти. Нова, яка містить скорочений та оновлений варіант попередньої доповіді, плюс розповідь, із прикладами, про деякі бібліотеки CUDA -- тут. І одна і друга містить певну кількість помилок та неточностей. Побачите їх -- пишіть мені!

Ліцензія, як і всіх матеріалів у цьому блозі, якщо не сказано іншого -- Creative Commons Attribution ShareAlike.

Перейду до того, що розповідалося. Текст нижче відповідає доповіді, писався так, щоб мені було зручно його промовляти, у наслідок чого не завжди підходить для представлення на письмі. Модифікував його зовсім трохи, тому сильно не гнівайтеся. :-)

неділя, 11 листопада 2012 р.

Марсіанські хроніки -- Curiosity, перший квартал

Автопортрет.
(c) NASA / JPL / MSSS / LOLspeak by Emily Lakdawalla
Якось, після успішної посадки, (як після складного екзамену, тиждень не вірилося, що вже все, та ще й успішно!) та перших фото, не було можливості активно писати про роботу марсохода. Однак слідкувати за ним продовжував. Спробуємо підвести підсумок перших трьох місяців роботи.

Увага -- дуже багато фото та відео!

Якщо під фото пише "Клікабельно" -- варто таки клікнути і подивитися у більшому варіанті, якщо ж "КЛІКАБЕЛЬНО", то подивитися слід обов'язково -- зменшена версія (зазвичай -- найбільша, яку вдалося запхати) просто не передає необхідних вражень. 

середа, 31 жовтня 2012 р.

CooCox CoIDE

Про оболонку CoIDE від CooCox вже згадувалося у попередньому пості. Вона проста та зручна, і вартує уваги, особливо для початківців у роботі з контролерами ARM Cortex-M. Поміж недоліків -- "Windows only", відсутність підтримки C++ "з коробки", при чому останнє легко виправити (хоча б частково).

Думаю, варто розповісти про неї детальніше. Щоправда, базові аспекти роботи, з одного боку, менш-більш інтуїтивні, з іншого, описані:
  • Частина статті "STM32: Урок 1 - Настраиваем IDE" від Robocraft. В основному вона про підготовку власного середовища на базі Eclipse, але зачіпає і роботу з CoIDE. Навіть якщо поки що самостійно "збирати" середовище не планується, варто її прочитати, щоб краще розуміти механізми роботи IDE, їх взаємодію з компілятором та програматорами
  • "Необходимый софт" від EasySTM32 -- налаштування і робота з CoIDE. Створення проекту, компіляція, прошивка
Тому нижче зосереджуся на деяких нюансах -- прикручування підтримки С++, робота із репозиторієм,  всілякі дрібні потенційні "граблі". Розглядаю CoIDE останньої,  на момент написання, версії, 1.5.1.

[Update від листопаду 2015 року. Частина, присвячена С (Newlib) та С++ runtime містить багато неточностей та помилок. Існує більш детальний та точний варіант: "Стандартна бібліотека C та SemiHosting (на прикладі STM32 і CoIDE)" і "C++ із ARM GCC + STM32 (+ CoIDE)", відповідно. Крім того, див. пост про нову версію CoIDE, 2.0.3 beta: "CoIDE 2".]

понеділок, 15 жовтня 2012 р.

Огляд STM32 (ARM Cortex-M від STMicroelectronics)

STM32VLDiscovery
Планував я написати наступний пост про роботу з атмелівським апартним TWI (I2C), але поки доступу до AVR не маю, зате маю STM32VLDiscovery, тому поговоримо поки про ARM-мікроконтролери від STMicroelectronics

ARM -- архітектура популярна (згідно вікіпедії, найбільш поширені 32-бітні процесори). Детально про неї не писатиму, принаймні не зараз, згадаю лише кілька важливих для подальшого розуміння фактів: 

По-перше, фірма-розробник, ARM Holding, процесорів не випускає. Вона розробляє лише архітектуру і систему команд та ліцензує її іншим фірмам. Виробники можуть виготовляти процесори або мікроконтролери (System on Chip), що базуються на ядрі ARM, доповнених різними периферійними компонентами, пам'яттю, сопроцесорами, тощо, або розробляти власні архітектур на базі системи команд та архітектурних рішень ARM. Тому під абревіатурою ARM можуть ховатися зовсім різні процесори! Звичайно, у всіх пристроях сімейства багато спільного, але все рівно завжди варто конкретизувати, про який саме ARM мова.

По-друге, існує багато "версій" ядра ARM, які грубо можна поділити на три групи:
  • ARM Cortex-A -- "звичайні" процесори, їх, наприклад, можна зустріти в ноутбуках і планшетах
  • ARM Cortex-R -- процесори для систем реального часу
  • ARM Cortex-M -- мікроконтролери на базі архітектури ARM
Надалі мова йтиме лише про "мікроконтролерні" варіанти ARM, Cortex-M. Важливо усвідомлювати, що хоча в світі мікроконтролерів вони виділяються великою потужністю, однак все ж це саме мікроконтролери і "звичайним" процесорам ARM серії A вони дуже і дуже поступаються -- це просто пристрої різного класу, як мопед і мікроавтобус. Крім того, так як для мікроконтролерів критичним є розмір програм, "Кортекси" підтримують лише "урізані" системи команд -- thumb (виключно 16-бітні команди) і thumb-2 (як 16-бітні, так і 32-бітні). Досягнуто це урізання та "запаковування" у 16 біт зменшенням кількості дозволених комбінацій операндів, перетворення частини операндів на неявні (з ніжністю згадуємо різноманітні div-и та mul-и x86-х), тощо.

понеділок, 6 серпня 2012 р.

MSL Curiosity -- перші фото!

"Примарсився" успішно!

Спостерігав за трансляцією з центру керування. Вражень -- безліч, писати про них не вмію. Цікаво було спостерігати, як після підтвердження успішної посадки, хтось, (можливо -- керівник), регулярно нагадував працівникам, щоб від радості про свої пульти не забували, бо роботу ще не завершено. 

Скрін-шот першого thumbnail-а з "живої трансляції" (клікабельно, можна роздивитися всілякі цікаві подробиці):


та скріншот (звідтіля ж) першої отриманої в повній роздільній здатності фотографії:


Задня HazCam (про камери марсохода "Допитлива" див. попередню нотатку). Якщо я правильно зрозумів, це зображення отримано скрізь захисний ковпак, який відстрілюється аж після того, як піднята посадкою пилюка осяде. Видно колесо, згідно слів операторів, виглядають справними, значить може і їздити зможе :-)

Про всяк випадок, хто ще не зауважив чи не усвідомив: оце, абсолютно непоказне фото вище -- перший погляд на краєвид ще одного місця чужого світу, іншої планети.

Ніколи раніше така складна машина не сідала на поверхню іншого світу. Ніколи ні один спускний апарат не виконував такої складної процедури посадку. (Чому вона така складна, див. попередню нотатку.)

Вітання розробникам та науковцям!
Вітання JPL/NASA!
Вітання MSL "Curiosity"!

Та й всім небайдужим, не залежно від місця розташування та роду занять  -- теж вітання :-)