05.27.09

Использование OpenMP: старт

Рубрика: Gentoo, Science tagged , , , , в 18:25 от Engraver

Распараллеливание задач, подчас, бывает крайне необходимой штукой. Однако в самом начале изучения одной из библиотек для этого — OpenMP — сталкиваешься со страшной проблемой: нифига не паралеллится. Итак, раз и на всегда что нужно делать:
#include <stdio.h>
#include <stdlib.h>
#include <omp.h>
int main(int argc, char ** argv)
{
#pragma omp parallel
{
printf("Hello, world!\n");
}
return 0;
}

Теперь компилируем:
alexander@A64x2 ~/Temp $ gcc -fopenmp -c test.c
alexander@A64x2 ~/Temp $ gcc -o test test.o -lgomp

Здесь ключевыми являются флаги -fopenmp и -lgomp, использование которых, похоже, очевидно всему миру кроме меня… А результат выполнения у меня был таков:
alexander@A64x2 ~/Temp $ ./test
Hello, world!
Hello, world!

05.23.09

Мнение изнутри

Рубрика: Цитата tagged , , , , , , в 17:05 от Engraver

Книга Торвальда Юргена «Век криминалистики» оказалась потрясающим чтивом. Не могу удержаться от сохранения цитаты из мемуаров одного нью-йоркского полицейского, написанных более столетия назад:

Я слишком хорошо знаю силу столь распространенного у нас союза политиков и полицейских. Я пробовал выступать против этого, но результаты были, как правило, катастрофическими для меня. Местное управление в США осуществляется не так, как в остальном цивилизованном мире. Оно базируется на всеобщих выборах. Избирательные кампании ведутся не ради нужд городов, а лишь во имя целей, преследуемых двумя политическими партиями… Я не верю в то, что хотя бы один человек из пятисот способен объяснить истинные цели каждой из двух партий. Называть их „политическими“ будет ошибкой. Их единственным основополагающим принципом, по крайней мере в Нью-Йорке, является сила и эксплуатация. До тех пор пока такие политики будут влиять на полицию, они будут парализовывать коррупцией полицейский аппарат, которому надлежит охранять имущество и честь граждан… Прочтите эту запись до конца »

05.10.09

Отладчик gdb

Рубрика: Linux tagged , , , в 11:04 от Engraver

gdb, он же GNU Debugger — одно из основных средств отладки в *NIX, при этом консольное. Последнее и послужило причиной написания данной напоминалки. Итак, пусть мы хотим отладить программу prog. Тогда её обьектные файлы должны создаваться с ключем -g, позволяющим отладку:
$ gcc -c prog.c myheader.h -g
$ gcc prog.o -o prog

Теперь можно запустить дебаггер:
$ gdb prog

Запуск и остановка выполнения

  1. run prog <agruments> — запуск программы на выполнение. Псевдоним: r.
  2. Остановка: Ctrl+C.

Точки останова (breakpoints)

  1. break <linenumber> или break <filename.c>:<linenumber> или break <function_name> устанавливает точку останова в определенную строку основного файла проекта, или в файле<filename.c>, или на заход в функцию<function_name>. Псевдоним команды break: b.
  2. delete — удалить все точки останова.

Список будет пополняться по мере надобности на странице блога.

05.08.09

Метод Рунге-Кутта с адаптивным шагом (Runge-Kutta-Fehlberg)

Рубрика: Math, Physics tagged , , , , , , в 23:01 от Engraver

Метод интегрирования Рунге-Кутта с адаптивным шагом является одним из наиболее часто используемых методов численного решения дифференциальных уравнений. Его реализаций существует довольно много, но наибольшее распространение получил метод Рунге-Кутта четвертого порядка. Для достижения заданной точности применяется изменение шага интегрирования. Можно изменять по-простому, деля шаг на два, и интегрируя дифференциальне уравнение сразу с двумя шагами по сетке, а можно поступить немного иначе: интегрировать дважды с одним шагом, но разным порядком метода. Получается быстрее. Далее приведены три матлабловских скрипта, решающие уравнение

\dot y = -yt,\quad y(0) = 1

с помощью интегрирования 4-м и 5-м порядками метода. Прочтите эту запись до конца »

05.05.09

Прогулка по Киеву

Рубрика: Киев tagged , , , , , , в 22:04 от Engraver

Наконец выбрался в Город с фотоаппаратом пробежаться по любимым местам. Не то, чтоб там что-то сильно поменялось в худшую, или (увы) лучшую сторону… Но солнце светило немного иначе, чем в предыдущие года ;)

Кое-кто видел, как соседний каштан не так давно лишь просыпался ранним утром ;)

Прочтите эту запись до конца »

05.04.09

Совы on-line

Рубрика: Life tagged , в 11:34 от Engraver

Сенкс dvijaya за наводку на трансляцию видео из гнезда совы где-то в Эстонии:
http://www.eoy.ee/kodukakk/kakukaamera/
:D

Фотоаппараты в Gentoo

Рубрика: Gentoo, memory tagged , , , , , , , , , , в 10:58 от Engraver

Как и в случае с принтерами, для поддержки мультимедийного оборудования лучше обновить соответствующие библиотеки с тех, которые лежат в портеже на самые новые, скачав их с сайта разработчика. Первым делом лучше проверить, поддерживается ли ваша камера в этом списке. В моем случае, Canon PowerShot A400 завелся после инсталляции F-Spot (http://www.gentoo-wiki.info/F-Spot), последующего удаления libphoto
emerge --unmerge libphoto
и инсталляции из исходников последней на текущий момент версии 2.4.5, скачанной с http://gphoto.org/.
Не забудьте добавить своего пользователя в группы usb и plugdev, иначе перекачка фотографий будет выполняться только под root’ом:
gpasswd -a username usb plugdev
Иногда может понадобиться так же принадлежность к группе camera:
gpasswd -a username camera

То же самое относится и к другим менеджерам фотографий, таким как camera, gtkam и gphoto2.

Отдельное спасибо участникам рассылки gentoo-user@lists.gentoo.org, благодаря которым эта проблема разрулилась ;)

05.02.09

Ejecting CD-ROM in GNOME

Рубрика: Gentoo tagged , , , в 12:09 от Engraver

В один прекрасный день сообщение при вытаскивании диска мну задолбало:
There was an error ejecting the volume or drive.
org.freedesktop.Hal.Device.Volume.UnknownFailure:
umount: /dev/sr0: не підключений
umount: /dev/sr0: не підключений
eject: unmount of `/mnt/cdrom' failed

Решение простое: удалить каталог cdrom из /mnt и закомментировать строку, начинающуюся с /dev/cdrom, в /etc/fstab.

P. S. Это рецепт для GNOME’а.