LINUX.ORG.RU

Сообщения DesertFox

 

Описание и реализация HPC алгоритмов

Привет,

кто может посоветовать какие-то ресурсы на тему того как работают параллельные программы по типу lammps или NAMD при использовании MPI. Можно конечно заглянуть в исходники, но мне не хотелось бы слишком углубляться в детали, кроме того я не химик и не математик, поэтому боюсь, что могу просто не понять «магических» действий, которые там скорее всего происходят.

Меня прежде всего интересует то как происходит синхронизация процессов в таких программах и то какие паттерны коммуникацию сущесвуют. Есть ли какой-то ликбез для программистов на эту тему?

 ,

DesertFox ()

В чем лучше всего рисовать графики?

Привет,

у меня следующая задача. Я собираю данные, которые я должен отпарсить, обработать и нарисовать график. Парсинг я делаю регулярным выражением, обработка, на данный момент, состоит в разбитии массива данных на несколько категорий, для которых я считаю среднее, среднеквадратичное отклонение, кумулятивную сумму (cumsum). Но возможно, что понадобятся и другие функции.

Раньше я слышал, что для обработки статистических данных R — очень крутая штука. Поэтому первым, что я попробовал, был скрипт на R.

Но кроме того у меня есть скрипт на python, который занимается сбором неотфильтрованных данных. Поэтому, для удобства предачи данных от «сборщика» к «обработчику» я тоже решил работать с python. И переписал R-скрипт на питон, с использованием rpy2.

Использование rpy2 очень похоже на использование R. Разве что в rpy2 вместо использования синтаксических конструкций R, используются обычные функции. В целом код получается более многословным, чем в R. К тому же чувствуется, что ты пишешь не на питоне, поэтому постоянно приходится обращаться к документации по R, чтобы сделать вещи, которые в python я уже могу делать.

Поэтому я думаю над тем, чтобы перейти на что-то третье. Например, python+numpy. Но в качестве вариантов я еще слышал генерацию данных в python, с последующей визуализацией в R или TikZ.

И вот хочу спросить, что используете в таких случаях вы? И какие преимущества и недостатки вы видите в вашем подходе?

 , ,

DesertFox ()

Как в Reftex достать поле из BibTex

Привет,

я хочу создать свой формат ссылки, для чего использую reftex-set-cite-format. По умолчанию он может распарсить ограниченный (см. reftex-cite-format) набор полей из дескриптора в BibTex файле. Я же хочу в свой дескриптор добавить поле file, где будет храниться путь к файлу со статьей, и хочу, чтобы RefTex это поле распарсил.

К сожалению, я не нашел как можно объявить свой тип поля, но я обнаружил, что парсинг дескриптора происходить здесь. Но и тут меня постигла неудача. Оказалось, что с давних пор RefTex является встроенным в Emacs, поэтому я не знаю легкого способа добавить изменение в RefTex, так, чтобы не пересобирать Emacs целиком.

Или может есть такой способ? Хотя конечно лучше всего, чтобы новое поле можно было бы просто в .emacs прописать.

 

DesertFox ()

Интервью о принципиально новой системе счисления

Декан факультета информатики рассказывает о «компьютерах будущего», в интервью упоминается фраза «принципиально новая система счисления» https://www.youtube.com/watch?v=SF9WSwLzwe8

Чтобы стало понятнее (или непонятнее) о чем идет речь, можно почитать его статью: http://ea.donntu.edu.ua:8080/jspui/bitstream/123456789/3165/1/1996-anopriyenk... Там он сам рассказывает в чем суть «новой системы счисления».

Для полноты образа вот еще ссылка на отзыв о его книге об Атлантиде: http://dmi-p-a-v-l-o-v.livejournal.com/172399.html

А чем необычным занимались деканы на факультетах, на которых учились вы?

 

DesertFox ()

Чтение файла ядром

Добрый день,

пытаюсь разобраться как работает чтение файлов в ядре. Рассмотрим функицию do_generic_file_read. В этой функции есть большой цикл, в котором данные читаются постранично. Допустим, что страницы не в кеше, поэтому здесь функция вернет NULL. Далее предположим, что readahead тоже не прочитал страницу, поэтому будет осуществлен переход на эту строку. Тут создастся новая страница, а потом вызовется функция add_to_page_cache_lru.

Вот что делает add_to_page_cache_lru я как раз и не могу понять. Сначала она вызывает add_to_page_cache, которая добавляет в адресное пространство файла созданную страницу. При чем я не вижу тут связи между тем, что функция делает и ее именем.

Потом я не понимаю работу функции lru_cache_add_file. Как я понимаю, она добавляет страницу в локальный для процессора pagevec и потом, когда pagevec заполняется, она перемещает страницы в глобальный список, отдельный для каждой зоны. Когда страницы из pagevec перемещены в список зоны, он очищается функцией release_pages.

Объясните, пожалуйста, зачем добавлять только что созданные страницы в LRU и зачем их все потом очищать. Причем, когда страница добавляется в page cache, вызывается функция radix_tree_insert(&mapping->page_tree, offset, page), а когда вызывается release_pages страницы, если освобождаются сохранются в структурах buddy allocator, локальных для зоны, но при этом radix_tree_insert(&mapping->page_tree) никогда не вызывается. Почему?

 , ,

DesertFox ()

Не запускается стим

Привет,

я решил установить стим на 64-х битный дебиан, для этого я добавил поддержку 32-х битный приложений:

dpkg --add-architecture i386
apt-get update

Потом установил стим из рипозитория:

apt-get install steam
apt-get -f install

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

Fatal Error: Failed to load libsteam.so

Версия ядра:

root@debian:/tmp# uname -a
Linux debian 3.9-1-amd64 #1 SMP Debian 3.9.8-1 x86_64 GNU/Linux

 ,

DesertFox ()

Sphinux OS

Все как в старой шутке про вирусы для линукса. Группа египетских хакеров создала принципиально новую ОС, которая по их утверждению опережает Linux по производительности на 150% и имеет куда меньшие системные требования. Новость была опубликована на Phoronix с предложение попробовать. Ситуация оказалась печальнее, чем в случае с незадачливым школьником: одним из учасников форума было обнаружено огромное количество зловредных утилит.

 ,

DesertFox ()

Почему не удаляют тему?

Отвратительнейшее объявление на работу. Из 32-х сообщений было удалено 27, если это не 4.3, то я и не знаю, что может считаться «нездоровой дискуссией».

Кроме того в теме «Как правильно писать объявление о работе» написано:

Если писать запрос так, как рекомендуется ниже, то его не удалят...

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

DesertFox ()

Размещение устройств на шинах

Добрый день,

пытаюсь разобраться с тем, как организованы шины в линуксе. Для этого я на qemu установил линукс и подключаю устройства через разные интерфейсы.

Если я создаю устройство на шине ide, и в ядре есть драйвер ide_gd, то в директории /sys/bus появляется шина ide, где я вижу подключенные устройства. Если драйвер ide_gd не установлен (конкретно это я тестирую на дефолтном дебиановском ядре версии 2.6.32), устройства появляются на шине scsi. Как я понимаю, в первом ядре этого не происходит из-за отсутствия драйвера.

Теперь если я при старте qemu указываю шины scsi, то вне зависимости от наличия драйвера ide_gd, устройства появляются на шине pci. Но при этом в дебиановском ядре еще и на шине scsi.

Если я правильно понял то, что написано на OSDev wiki, то ide устройства должны также появляться на pci шине. Но этого не происходит.

Вопрос: почему если я при старте qemu указываю шину ide, то устройства не появляются на pci шине, а если указываю scsi, то появляются?

Виртуалку я стартовал следующим образом:

kvm -hda debian.img -cdrom debian-6.0.6-amd64-DVD-1.iso -m 512 -net nic,model=rtl8139 -net user,hostfwd=tcp::5555-:22 \
-drive file=mini.iso,if=scsi,bus=1,media=disk,format=raw -drive file=mini.iso,if=scsi,bus=0,media=disk,format=raw &

 , ,

DesertFox ()

Отказаться от windows7

Привет,

купил ноут ThinkPad в Германии с предустановленной windows 7. Я где-то когда-то слышал, что от нее можно отказаться и получить деньги обратно (источник сравним с ОБС). Естественно я бы хотел получить деньги, снести винду и поставить линукс :) Кто-то знает, возможно ли такое? И если да, то как?

 

DesertFox ()

Списки как в ядре linux

Привет,

С++ для меня всегда был неким подобием черной магии, но грянул гром и теперь приходится его осваивать. Мне нужно включить класс в несколько дэков, при этом я могу выделить память только один раз для всего класса сразу. Я могу это сделать только явно и без последующих попыток перевыделения. То есть мне нужно то, что в ядре предоставляется связанными списками и несколькими вспомогательными макросами.

Вот функционал, аналогичный которому я ожидал бы увидеть: http://kernelnewbies.org/FAQ/LinkedLists

Как я понимаю std::deque мне не подходит так как: во-первых, std::deque, как я понимаю, сам инкапсулирует в себя нужный мне класс, а мне нужно наоборот; во-вторых, использует выделение памяти, при чем не совсем прозрачно.

 ,

DesertFox ()

Вложенные функции

Привет,

я столкнулся с тем, что такая (на мой взгляд) замечательная функция в gcc, как вложенные функции, которая позволяет улучшить стиль кода, мало используется. Более того она критикуется, например на stackoverflow. Среди доводов, которые я встречал, пожалуй, самым веским был тот факт, что использование встраиваемых функций в gcc приводит к тому, что стек получает атрибут исполняемого.

Но как я сказал, что функция на мой взгляд удобная, поэтому что лоровцы думают относительно этой функции? И может существуют альтернативные реализации в других компиляторах, которые не делают стек исполняемым?

 ,

DesertFox ()

Приватбанк впереди планеты всей

Зашел на сайт приват-24, а там увидел сообщение, что моя версия браузера уже не поддерживается. У меня стоял Iceweasel 8.0, обновился из сида до 10.0.7esr-2, которая вышла неделю назад, но на сайте написано, что Firefox поддерживается с версии 14 (пруфпик). 14-я версия вышла 17 июля, то есть они не поддерживают старую версию браузера уже спустя полтора месяца.

Не слишком ли это быстро?

 

DesertFox ()

Вычитать текст на английском

Привет,

я написал на английском небольшой текст (200 слов), но мне очень нужно, чтобы он был без ошибок. Но проблема в том, что я и на русском с трудом без ошибок пишу, поэтому если кто может помочь его вычитать, стукнитесь, пожалуйста, в джаббер на mcsim.planeta(at)gmail.com. Буду очень благодарен.

 

DesertFox ()

Продожить выполнение функции

Привет,

есть функция, в которую я хочу добавить возможность выполнения в «пошаговом» режиме. Выглядить это должно так. Я вызываю функцию, она что-то делает, потом возвращается. Когда я вызываю эту же функцию снова, то управление возвращается в то место, где оно прервалось. Функция опять что-то сделает и снова возвращается и т.д.

Для этого я думал использовать функции getcontext/setcontext. Вот код, который я хотел использовать:

void field_connect (field_t self)
{
  if (self->cont)
    {
      self->cont = 0;
      setcontext (&self->context);
    }
  self->cont = 0;

  int i;
  for (i = 0; i < self->paths->len; i++)
    {
      path_t cur_path;
      cur_path = g_array_index (self->paths, typeof (cur_path), i);

      struct point a;
      path_get_point (cur_path, 0, &a);

      int j;
      for (j = 1; j < cur_path->len; j++)
        {
          struct point b;
          path_get_point (cur_path, j, &b);
          self->fops.init_search (self, &a, &b, 0);
          int res;
          struct cell intersection;
          do
            {
              res = self->fops.wave_step (self, &intersection);
              if (self->step_by_step)
                {
                  self->cont = 1;
                  getcontext (&self->context);
                  printf ("getcontext\n");
                  if (self->cont)
                    return;
                }
            }
          while (res == 0);
          b = a;
        }
    }
  self->cont = 0;
}

Тут переменная cont говорит, нужно ли продолжать выполнение функции с какого-то места, step_by_step говорит о том, что функция должна работать в пошаговом режиме.

Проблема в том, что при смене контекста локальные переменные не сохраняются. Может тут нужно использовать функцию makecontext для того, чтобы как-то сохранить стек? Но курение манов не помогло мне с ней разобраться, поэтому и прошу помощи.

 

DesertFox ()

urxvt, проблемы с кириллицей

Привет,

после установки awesome решил в качестве эмулятора терминала использовать urxvt, но столкнулся с тем, что я не могу печатать кириллицей, хотя она и отображается. Для сравнения, в gnome-terminal все работает.

Вот мой .Xdefaults: http://paste.debian.net/157958/

Вывод locale: http://paste.debian.net/157960/

Подскажите, пожалуйста, как исправить данную проблему.

DesertFox ()

[geda] Автонумерация компонентов

Привет!

Мне в gschem понадобилось пронумеровать компоненты на принципиальной схеме, но некоторые микросхемы содержат в себе несколько логических элементов. Я пытался пронумеровать эти элементы через Атрибуты -> Автонумерация текста ..., установив атрибут refdes=DD?.

Проблема в том, что элементы, находящиеся в одном корпусе, получили одинковое название название: DD1. А мне надо пронумеровать их таким образом: DD1.1, DD1.2, ...

Подскажите, пожалуйста, как это можно сделать.

DesertFox ()

[Kicad] Рамки ескд

Привет.

Подскажите, пожалуйста, как изменять рамки в KiCAD. Стандартная сделана по какому-то французскому стандарту, а мне нужен ескд. Нашел в интернете русскую сборку KiCAD и там стоит подходящая рамка, но подписи в ней сделаны на русском, а мне нужно на украинском.

DesertFox ()

Библиография

Привет.

Я цитирию книгу, но эта цитата в свою очередь является цитатой из второй книги (в первой книге есть ссылка на вторую). На какую книгу мне следует ставить библиографическу ссылку? И если есть какие-то особенности, то как это оформить в BibTeX?

DesertFox ()

[LaTeX] Доступ к элементам списка

Привет.

Я создаю с помощью команды \def список, например:

\def\foo{bar,tar,baz}

Я могу теперь с помощью макроса \foreach обратиться к каждому элементу списка, но как обратиться только к одному элементу? Или хотя бы как прервать этот макрос после первой итерации?

DesertFox ()

RSS подписка на новые темы