LINUX.ORG.RU

Сообщения rha

 

[parallel][I/O] как делают настоящие джедаи?

Братья,

у меня вопрос следующего плана. Есть очень много входных данных (около 10^4 файлов различной длины). Данные надо почитать, проверить определённым способом и в зависимости от результатов проверки либо записать в новый файл, либо проигнорировать. Есть также много компов. Каждый комп многоядерный (4 ядра). Данные лежат в сети (пусть будет гигбитный езернет) и примонтированны к каждому компу как NFS партишн. Хочется, чтоб всё было как можно параллельно.

Проблема в чтении файлов. Сейчас я делаю след образом. Пока ограничиваюсь одим компом, но в перспективе использовать надо больше. Каждый тред/поток читает свой собственный входной файл. Каждый поток решает что с ними делать и в случае успеха записывает в свой собственный выходной файл. В итоге имеется стрёмная производительность. Согласно top каждый тред/поток поедает только около 10 процентов процессорного времени, что свидетельствует о том, что имеют место простои.

Понятно, что всё дело в вводе/выводе. Потом я подумал, что пусть только один тред/поток читает данные и занимается их раздачей другим участникам.

Но прежде, чем ломать дрова, решил проконсультироваться у народа. Как делают нормальные люди с прямыми руками в таких случаях? Стоит ли искать истину в середине? Типа k потоков читают информацию и раздают её n-k потокам для обработки.

Кроме вышеупомянутых компов есть один очень мощный суперкомп с GPFS, который почти справляется в первым подходом. Согласно топ каждый поток поедает 75% CPU времени. Тем не менее хочется большего.

Теперь к техническим деталям. линукс, gcc, пока OpenMP, но в перспективе MPI или гибрид. Для I/O использую стандартную сишную библиотеку.

Извините, если объяснил невнятно. Если что, спрашивайте.

 

rha
()

[ELF][нуб] откуда берётся стартовый адрес?

dear all,

прочитал статью «Как запускается функция main() в Linux» http://gazette.lrn.ru/lg84/kim.html

так и не понял, откуда берёться адрес запуска программы? Что вообще за адрес? Адрес где? У каждого бинарника он свой (уникальный)?

помогите вкурить.

 ,

rha
()

[asm][x86_64] red zone для Intel 64. такое есть?

на сайте x86-64.org скачал x86-64 ABI, в котором прочёл, что есть так называемая red zone - область размером в 128 байтов, которая находится за пределами %rsp, которая зарезервированна и которая не должна изменятся обработчиками сигналов и прерываний. Таким образом можно использовать эту область для временных переменных, не подгоняя указатель на стек в прологе и эпилоге.

Листая документацию по Intel, подобного не нашёл (плохо искал?). Может кто знает, предусмотренно ли такое для Intel 64 архитектур?

В попытке предотвратить возгласы, типа «нафига тебе это надо», отвечу: ради спортивного интереса.

 

rha
()

[chrome] проблемы с pdf

Приветствую!

Поставил себе Google Chrome браузер (система Fedora 12 на x86_64). Прикольно так, шустро бегает и удобен в использовании. Единственная проблема (пока) - это открытие ссылок на pdf файлы. Появляется серый экран и ничего не происходит.

Гуглил на эту тему. Народ предлагает либо установить Adobde Plugin либо открывать через Google Docs Viewer.

Первое меня не устраивает, так как плагин 32-битный и запускать его во враппере чё-то не хочется. У меня на работе так настроено. Частенько падает. Но на работе Firefox только. Я там настроил так, чтоб автоматически предлагалось открыть программой по умолчанию (evince например). Второе меня ещё больше не устраивает. Google Docs Viewer - это от лукавого. Во-первых грузится дольше, во-вторых невсегда корректно показывает pdf.

Можно ли настроить Chrome так, чтоб он предлагал открыть файл установленной в сиситеме программой?

Какие ещё есть способы?

 

rha
()

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