The UNIX and Linux Forums  

Go Back   В UNIX и Linux Форумы > Топ форумы > Программирования высокого уровня
.
Google unix.com



Программирования высокого уровня Почтовые вопросы о C, C + +, Java, SQL и других языках программирования здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
forking в многопоточных программ skyrulz UNIX перспективных И опытных пользователей 0 04-22-2009 03:57 AM
выполнить команду многопоточным полезные без программирования umen Shell программирование и сценарии 0 12-07-2008 06:01 AM
Возникают проблемы при написании базового корпуса программы SeanWuzHere Shell программирование и сценарии 3 11-30-2006 01:41 PM
основные математические программы 4 ребенка perleo Программирования высокого уровня 9 10-22-2002 05:51 PM
Получение errno в Многопоточный программы С. Vishwanath Программирования высокого уровня 2 03-25-2002 09:58 AM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Сообщений: 104
Основные многопоточных программ

Я хочу написать программу (я на гибкий язык, C / C + + была моя идея, но скриптовый язык, возможно, будет лучше), что проходит сотни программ, но только в N \u003d 4 (говорят) одновременно. Идея заключается в том, чтобы сохранить все сердечники на многоядерных машина занята.

Как я могу это сделать? В частности, я хотел библиотека вызова я могу внести в некоторые соответствующие формулировки, которые могут
  • Начать новую тему
  • Запустите командную строку процесса в нить с произвольными аргументами
  • Признать, когда процесс будет завершен, возврат информации к основной нити и прекратить помощник / Славянский нить
  • В идеале, передавать и получать информацию от стандартных IN / OUT
Это кажется очень основные вещи задавать, я просто смотрю на то, что бы сделать это просто. Я, возможно, собирается написать много программ, например для разных задач, и я подумал, что было бы неплохо спросить примерно до погружения во что-нибудь не совсем уместно. Я начал читать о (новых) Python Threading ранее, прежде чем я думал, чтобы спросить совета / помощи.
Old 06-14-2009
pludi's Avatar
pludi pludi is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2008
Местонахождение:. На
Сообщений: 1877
Не могли бы вы дать нам больше информации?
  • Каким образом вы получите список программ, предназначенный для запуска?
  • Существуют ли какие-либо зависимости между программами? Если да, то как бы вы описать их?
  • Что должно произойти для вывода / STDERR? Вывод на консоль или сохранить то?
  • У программы требует какой-то вклад, когда они уже работает?
Old 06-14-2009
fpmurphy's Avatar
fpmurphy fpmurphy is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2003
Откуда: Florida
Сообщения: 1930
Какой ОС вы планируете использовать эту программу? Можете ли вы контроль процессор близость этой ОС?
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Сообщений: 104
Цитата:
Первоначально Послано pludi View Post
Каким образом вы получите список программ, предназначенный для запуска?
Программа будет идти в виде текстового файла с кучей цифр, что-нибудь на их обработку, а затем создать массив на основе этих цифр. Каждый элемент массива будут передаваться с помощью функции, которая будет создать соответствующий набор данных для этой записи. Эти данные будут использоваться для создания временного файла и аргументы командной строки с использованием этого файла.

Я не думаю, что это имеет значение, прежде чем я не упомянул его. В принципе, программа делает определенную работу, и появляется в списке команд для выполнения.

Цитата:
Первоначально Послано pludi View Post
Существуют ли какие-либо зависимости между программами? Если да, то как бы вы описать их?
Ах, что это довольно важный вопрос, который я забыл адрес! Эти программы являются независимыми. Зависимости делать сложные программы; мини просто базовой.

Цитата:
Первоначально Послано pludi View Post
Что должно произойти для вывода / STDERR? Вывод на консоль или сохранить то?
Я хочу ей быть переданы обратно в программу в виде строки, если это возможно. Он не должен быть отображен.

Цитата:
Первоначально Послано pludi View Post
У программы требует какой-то вклад, когда они уже работает?
Это я работаю на нет, но я, как метод, который мог бы направить ввода, поскольку другие подобные программы Я напишу, вероятно, должны сделать это.

----- ----- Обновление темы

Цитата:
Первоначально Послано fpmurphy View Post
Какой ОС вы планируете использовать эту программу? Можете ли вы контроль процессор близость этой ОС?
Я только что изменил мою ОС для 64-битных Ubuntu 9.04. Эти программы являются процессора, 64-разрядные программы с небольшим средним памяти следы.
Old 06-14-2009
pludi's Avatar
pludi pludi is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2008
Местонахождение:. На
Сообщений: 1877
Цитата:
Первоначально Послано CRGreathouse View Post
Программа будет идти в виде текстового файла с кучей цифр, что-нибудь на их обработку, а затем создать массив на основе этих цифр. Каждый элемент массива будут передаваться с помощью функции, которая будет создать соответствующий набор данных для этой записи. Эти данные будут использоваться для создания временного файла и аргументы командной строки с использованием этого файла.
Так у вас есть куча данных, перенести его в другую форму И тогда процесс, кроме того, верно? Если у вас есть доступ к источнику для последней части обработки, возможно, его можно переписать, используя OpenMP (Википедия)? Таким образом, было бы портативных различных ОС ', процессоры и количество ядер, а также нужно исключить необходимость создания центрального управления программой.
Old 06-14-2009
CRGreathouse CRGreathouse is offline
Зарегистрированный пользователь
  
 

Регистрация: Mar 2009
Сообщений: 104
Цитата:
Первоначально Послано pludi View Post
Так у вас есть куча данных, перенести его в другую форму И тогда процесс, кроме того, верно? Если у вас есть доступ к источнику для последней части обработки, возможно, его можно переписать, используя OpenMP (Википедия)? Таким образом, было бы портативных различных ОС ', процессоры и количество ядер, а также нужно исключить необходимость создания центрального управления программой.
Индивидуальные программы не очень parallelizable. (В CS жаргонизмов, они гипотезу для С полнойВне НК.) Они делают много последовательных операций на одном куске данные. Вот почему я хочу использовать их по отдельности.

Таким образом, вместо я пишу программу, чтобы найти наиболее эффективное решение для каждого произведения, рассчитать вероятность ее выполнения, решить приближенного бен-упаковке проблемы, и каждый график через настраиваемую пользователем количества процессоров.
Old 06-14-2009
pludi's Avatar
pludi pludi is offline Forum Staff  
Модератор
  
 

Регистрация: Декабрь 2008
Местонахождение:. На
Сообщений: 1877
Хорошо, от того, что Вы отправили 'до сих пор, основные структуры будет нечто вроде этого (псевдо-код)
Код:
Read numbers from file
Process them
Create output files
Create array of commands to run
Total processes=0
While there are commands left
    pop a command from the stack
    fork() a subprocess
    In the child
        system() the command
    In the parent
        Total processes++
    If total processes >= 4
        wait() until any process returns
Введите это не является проблемой, так как вилка () Эд процессы наследуют родители файл описателей. Результат есть, поскольку, насколько я знаю, это трудно вернуть данные ребенка к родителю, не разделяемой памяти или нечто подобное. Вы можете сохранить вывод в файл, на каждого ребенка в моих меняющихся вывода непосредственно перед системой ().
Кроме того, можно запустить EXEC () программа самостоятельно, чтобы уменьшить вилка курсов, но я не уверен, насколько хорошо это будет работать.
Кроме того, с shed_setaffinity Вы можете установить родство тех процессов (прямые, которые он для использования процессора), но вы должны отслеживать, какие процессоры последнего процесса используются.

Любое лицо, которое имеет больше опыта с алгоритмами есть лучшие идеи?
Reply

Закладки

Теги
многожильные, Threading

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 05:13 AM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0