31 мар. 2015 г.

RaspberryPIMediaCenter ver. 2.0 (RPiMC-2.0)

Спустя много много времени с момента моей последней записи про медиацентр на Raspberry Pi, я наконец смогу заняться этим делом всерьез, и сделать рабочий медиацентр, а не просто прототип, работающий в тестовом режиме.
Итак, RaspberryPIMediaCenter-2.0 (RPiMC-2.0).
Перерыв огромное множество сайтов, где написано как это все можно реализовать, я выбрал наиболее подходящий для меня способ.
Что мне понадобилось, чтобы это сделать:
1. Raspberry Pi model B
2. Карта памяти 8GB
3. USB-hub с питанием от сети
4. Внешний HDD на 1TB
5. Модуль WiFi
6. HDMI кабель
7. Телевизор :)

В качестве ПО я установил openELEC, образ которой я скачал с http://openelec.tv/get-openelec.
Затем записал образ на SD карту. Способ, которым можно записать образ ОС на карту памяти с помощью win32imagewriter описывается миллионы раз везде.

Когда я установил и запустил свой RPi, я был удивлен, насколько стала продуманна данная система. Помню, в последний раз, нужно было устанавливать все самому, все библиотеки, всякие утилиты, чтобы все работало, а сейчас оболочка сделалась настолько user-frendly, что это может сделать любой.
Очень легко и просто оказалось подключиться к своей сети WiFi, потому что опять же, оглядываясь назад, подключить RPi к сети WiFi было очень нетривиальным занятием.
Также просто можно добавить торрент-качалку transmission, которая устанавливается как дополнение.

Самое сложное в этом деле - это все правильно соединить. Ниже я приложил фотку, как это все у меня закреплено на задней панели телевизора.
Итак, снизу закреплен внешний HDD, который подключен к USB хабу. USB хаб подключен к сети и подключен к Raspberry Pi. Также в хаб воткнут модуль для WiFi. Собственно сам Pi также питается от сети, помимо питания для хаба. Это было необходимостью, потому что не хватало питания и для HDD и для Pi только с помощью хаба. Ну и HDMI кабель подключен к Pi, который идет далее к телевизору. Если рядом с телевизором есть ethernet порт, то лучше использовать его для подключения Pi к интернету, чтобы не урезать скорость соединения.
В целом все выглядит очень неплохо и главное, что работает.


28 апр. 2014 г.

Оптимизация MatLab

Немного про то, как можно увеличить скорость работы программ в Matlab. Хотя Matlab автоматически регулирует размеры векторов и матриц, оказывается, что лучше будет предварительно выделить матрицы. Такое предварительное распределение берет на себя расходы на выделение памяти только один раз, и это гарантирует, что матричные элементы будут храниться в смежных ячейках оперативной памяти (по столбцам).
Рассмотрим следующий код:

clear all;
nx = 50000;
dx = 5;
for i = 1:nx
x(i) = (i-1)*dx;
y(i) = sin(3*x(i));
end

24 мар. 2014 г.

Установка LAMMPS под систему с GPU

Также как и в случае с Quantum Espresso LAMMPS был дописан для работы с CPU-GPU кластерами. Здесь я опишу краткую инструкцию по его установке на такие системы.
В принципе, установка мало чем отличается от процесса установки на обычный кластер, описанный тут, кроме собирание отдельной библиотеки GPU для LAMMPS.
Итак, качаем последнюю версию LAMMPS, заходим в разархивированную папка и идем в папку с библиотекой GPU:

cd lammps-24Apr13/lib/gpu

после чего редактируем в файле Makefile.linux строки:

Установка QE под систему с GPU

В настоящее время все более востребованными стали вычислительные кластеры, которые содержат в себе не только классические CPU, но и графические ускорители GPU, которые позволяют в разы увеличить производительность вычислительных кластеров. В связи с этим многим людям кажется привлекательным проводить расчеты на гибридных CPU-GPU системах. Для этих целей, разработчики программных пакетов пару лет назад начали переписывать/дописывать/улучшать коды своих программа для работы на GPU системах или гибридных CPU-GPU, что у них очень удачно получается на данный момент.
Однако суть вопроса в том, как установить такие пакеты на свой кластер с GPU. Здесь я опишу краткую инструкцию по установке Quantum Espresso на кластер с GPU, т.к. она немного отличается от тривиальной и очень простой установки этого пакета на CPU систему.

17 апр. 2013 г.

Установка CP2K

Вчера мне понадобилось установить на кластер программу CP2K, которая позволяет проводить расчеты кристаллических и молекулярных систем методами DFT и DFTB. Процесс установки оказался не очень сложным, но тем не менее стоит про него написать.
Установка производилась с использованием компиляторов Intel. Для начала, что нужно было сделать, это скомпилировать библиотеку для FFTW, которая находится в папке
/opt/intel/mkl/interfaces/fftw3xf/, т.к. для компиляции CP2K она нам будет нужна, собрать эту FFTW библиотеку можно следующим образом, написав:

27 мар. 2013 г.

Raspberry PI. Подключение 3G модема

Сегодня решил попробовать подключить МТС 3G модем к моему Raspberry Pi. Для начала нужно установить службу, реализующую протокол точка-точка - PPP. Устанавливаем его следующим образом:

sudo apt-get install ppp

Еще одно удобство

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

qstat -n

и предоставлял ее в более сжатой форме. Например, многие меня спрашивали, можно ли сделать так, чтобы при проверке своей задачи можно было бы увидеть на каком узле задача считается, потому что команда nodes, про которую я писал ранее показывает общее состояние кластера, а писать qstat -n не очень удобно. Во-первых, это надо запомнить. Во-вторых, это надо нажимать на 3 клавиши больше. В-третьих, вывод этой команды громоздкий, не все пользователи могут адекватно его воспринимать. Заодно и получилось попрактиковаться и улучшить свое умение в написании однострочных скриптов.

19 февр. 2013 г.

Проблема с X11

Сегодня устанавливал софт на кластер и обнаружил, что я не могу загрузить визуальную оболочку через X11 Forwarding. Никак не мог сообразить почему такое происходит, ведь я ничего с этим не делал, с тех пор, как можно было работать удаленно с MatLab, а тут на тебе, не работает даже xterm.
Когда запускал xterm вылазило следующее:

Xlib: PuTTY X11 proxy: MIT-MAGIC-COOKIE-1 data did not match
xterm Xt error: Can't open display: localhost:12.0

28 янв. 2013 г.

Raspberry PI. Одновременный видео поток с трех камер

На днях попробовал установить видео поток не с одной камеры, а сразу с трех, с помощью ранее описанной программы motion. Так как видео поток с каждой камеры направляется через свой порт, то логично было попробовать соединить изображения со всех камер на одной web-странице, чтобы в режиме реального времени наблюдать сразу за всеми камерами. Для этого я сделал простенький html файл, в котором написал следующее

16 янв. 2013 г.

Raspberry PI. Передача видео через интернет

Очень часто встречал в интернете, что к Raspberry Pi подключают web камеру и передают поток видео через интернет. Мне стало интересно, что можно такого сделать с этим нужного. Перед тем, как что-то думать, нужно сначала испытать свои силы, принципиально смогу ли я настроить передачу потока видео через интернет, как делают другие люди.
Итак, почитав по этому поводу статей, я остановил свой выбор на программе motion. Эта программа может контролировать видео сигнал, посылаемый с камеры. Также, очень интересная и, может быть, нужная ее особенность в том, что она может замечать изменение картинки, т.е. движение, и начинать запись видео только тогда, когда что-то движется в кадре.
Итак, для начала нужно установить нужные нам программы следующие командой:

sudo apt-get install mplayer ffmpeg motion

Если камера уже подключена к компьютеру, то можно проверить ее работоспособность следующей командой:

13 янв. 2013 г.

Raspberry PI. XBMC медиа центр

После установки торрент качалки на наш Raspberry Pi, я решил сделать из него медиацентр, чтобы подключить к телевизору: фильмы будут качаться на носитель, подключенный к компьютеру, и с помощью программы XMBC проигрываться на телевизоре. Идея не нова, но я считаю, что если начинать с чего-то, то именно с этого :)
Итак, теперь про установку. Для начала нужно скачать несколько файлов и библиотек, которые понадобятся нам для установки:

libcec_2.0.5-1_armhf.deb - библиотеки протокола CEC для для удалённого управления электронными устройствами
libshairport_1-1202030-1_armhf.deb - для поддержки технологии AirPlay для яблочных изделий
taglib_20121005-1_armhf.deb
xbmc_26122012-1_armhf.deb

9 янв. 2013 г.

Paspberry PI. Учим его говорить

Для того, чтобы научить компьютер говорить существуют неплохие программы. Одной из таких программ является eSpeak. Мне на понравилась тем, что она легка в установке и обладает дополнительными словарями русского языка, которые делают произносимую речь лучше. На вопрос "Зачем это надо?" я отвечу:  "Ради удовольствия" :-)
Итак, я решил ставить программу сам. Конечно, ее очень легко можно поставить средствами ОС, т.к. дистрибутивы уже находятся в репозиториях с помощью команды:

sudo apt-get install espeak

8 янв. 2013 г.

Raspberry PI. Torrent клиент

Решил банально использовать свой Raspberry PI в качестве torrent качалки. Изучив нужную литературу в интернете я начал реализовывать свою идею, ну надо же с чего-то начинать :)
Сначала качаем torrent клиент transmisson с помощью команды:

sudo apt-get install transmission-daemon

Установленный демон будет запускаться из-под пользователя debian-transmisson, поэтому в дальнейшем, нужно будет сделать доступ к нужным папкам для группы пользователей с таким именем.

5 янв. 2013 г.

Raspberry PI. Корпус

Сегодня занялся мастерить корпус для моего маленького компьютера. Посмотрел как люди делают корпуса своими руками, и решил сделать его из корпуса от CD диска:) Примерно через пару часов корпус был готов:) Получилось не идеально, но зато своими руками:)
Вот так он выглядит.

29 дек. 2012 г.

Raspberry PI. Продолжение

Сегодня подключил Малинку к телевизору. Записал образ ОС для него на карту памяти от фотика, вставил. Подключился к телевизору через HDMI и включил в розетку через свою зарядку от телефона HTC, и все заработало!:)
Подключил клавиатуру и мышку.

26 дек. 2012 г.

Raspberry PI

Вот и пришел ко мне мой Raspberry PI! :)
Очень был удивлен, что он пришел так быстро, не прошло и месяца. Конечно, я очень рад этому:) Пока ничего делать с ним особо не буду, т.к. жду SD карту с операционкой, которая тоже должна придти.
Вот первые фотки.
Коробочка, в которой он был упакован

25 дек. 2012 г.

Список TOP500 мощнейших суперкомпьютеров мира

40-ая редакция

Я опубликовал только 50 первых компьютеров из списка. Данная копия списка соответствует состоянию списка на ноябрь 2012 года. Официальная страница Top500 находится по адресу www.top500.org.

Rank Site System Cores Rmax (TFlop/s) Rpeak (TFlop/s) Power (kW)
1 DOE/SC/Oak Ridge National Laboratory
United States
Titan - Cray XK7 , Opteron 6274 16C 2.200GHz, Cray Gemini interconnect, NVIDIA K20x
Cray Inc.
560640 17590.0 27112.5 8209
2 DOE/NNSA/LLNL
United States
Sequoia - BlueGene/Q, Power BQC 16C 1.60 GHz, Custom
IBM
1572864 16324.8 20132.7 7890
3 RIKEN Advanced Institute for Computational Science (AICS)
Japan
K computer, SPARC64 VIIIfx 2.0GHz, Tofu interconnect
Fujitsu
705024 10510.0 11280.4 12659.9
4 DOE/SC/Argonne National Laboratory
United States
Mira - BlueGene/Q, Power BQC 16C 1.60GHz, Custom
IBM
786432 8162.4 10066.3 3945
5 Forschungszentrum Juelich (FZJ)
Germany
JUQUEEN - BlueGene/Q, Power BQC 16C 1.600GHz, Custom Interconnect
IBM
393216 4141.2 5033.2 1970

21 дек. 2012 г.

Еще больше удобства

В продолжение темы, поднятой мной ранее (http://alex-hpc.blogspot.ru/2012/12/blog-post.html) я написал более красивый скрипт для определения количества свободных и занятых ядер на узлах.
Скрипт был написан минут за 30, т.к. я не очень умею это делать, но благодаря интернету все получилось:)
Итак, раньше это и тяжело было скриптом назвать, потому что использовалась только команда alias для переобозначения длинной команды. Сейчас я написал скрипт, который использует выходные данные от команды pbsnodes -a о количестве запущенных заданий на узлах и выводит эту информацию на экран в удобной для пользователя форме.
Итак, вот сам скрипт с комментариями

18 дек. 2012 г.

Распаковка архивов

Бродя по просторам интернета случайно наткнулся на очень удачную мысль о том, как сделать так, чтобы не надо было каждый раз вспоминать какой командой распаковать тот или иной архив, потому что архивов много и команд для их распаковки тоже много. Поэтому здесь я нашел очень интересное решение этой проблемы.
В файле ~/.bashrc нужно написать небольшой скриптик в конце файла. Выглядит он следующим образом:


12 дек. 2012 г.

Компилируем ядро Linux Ubuntu


Здесь я опишу пример компиляции ядра Linux Ubuntu на основе старого ядра. Необходимость компиляции нового ядра появилась в связи с тем, что  мой Ubuntu 10.10 обновился до 12.04, а количество видимых им ядер так и осталось равным 8, в то время как у меня их 12. Поэтому этот пример являет более или менее наглядным примером по задействованию части из всех возможных оптимизаций для текущего процессора.
Для начала нужно загрузить исходные тексты ядра и заголовочные файлы. Делаем это с помощью команды:

sudo aptitude install linux-source linux-headers

Далее устанавливаем утилиты для компиляции ядра:

sudo aptitude install build-essential kernel-package libncurses-dev