Пытаюсь осуществить сабж, пока ничего не получается.
Программа получает n количество, нет n мало, k количество данных,
строит дерево и время последующей работы с ними должно уложится в 1 секунду.
Пробовал сделать расчет многопоточным, но пользоваться чем то сторонним — низзя, только стандартными средствами,
вот и вопрос как можно расспараллелить работу с этим набором данных?
Пробовал сделать вызовом програмно сам себя, а сообщение между экземплярами осуществлять через пайпы, но не могу создать открыть пайп, как правильно?
argc1 file name./a.out
try exec fork
fork ok
popen ./a.out
params cant open pipe
p.s.
Пробовал сделать форкнув пару раз экзепляр, а сообщение между дочерними процессами наладить чере шаред меммори
но получаю ошибку сегментации.
Кто знает почему напишите плз.
Здравствуйте, b099ard, Вы писали:
B>Пытаюсь осуществить сабж, пока ничего не получается. B>Программа получает n количество, нет n мало, k количество данных, B>строит дерево и время последующей работы с ними должно уложится в 1 секунду.
B>Пробовал сделать расчет многопоточным, но пользоваться чем то сторонним — низзя, только стандартными средствами,
Стандартных средств многопоточности в С++ нет. Можно пользоваться либо API операционной системы, либо сторонними библиотеками...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, b099ard, Вы писали:
B>>Пытаюсь осуществить сабж, пока ничего не получается. B>>Программа получает n количество, нет n мало, k количество данных, B>>строит дерево и время последующей работы с ними должно уложится в 1 секунду.
B>>Пробовал сделать расчет многопоточным, но пользоваться чем то сторонним — низзя, только стандартными средствами, LVV>Стандартных средств многопоточности в С++ нет. Можно пользоваться либо API операционной системы, либо сторонними библиотеками...
Тогда только стредствами ОС, сейчас помоему даже мобильник многозадачный
Как бы вот так запустить рекурсивно програмно самому себя и наладить передачу данных между экземплярами.
Точнее надо передача не друг с другом, а между самым первым экземпляром и всеми остальными — не первыми.
Что для этого лучше использовать?
Пока остановился на варианте с именованными каналами.
Здравствуйте, MasterZiv, Вы писали:
MZ>On 05/02/2011 11:06 AM, b099ard wrote:
>> Что для этого лучше использовать?
MZ>Не надо "запускать рекурсивно себя" и "налаживать передачу данных".
MZ>Используй потоки. Есть POSIX -библиотека pthread, она переносима и её тебе MZ>вполне хватит.
Система тестирования о ней ничего не знает и компилирует программу как обычную,
без подключения сторонних библиотек, может быть это не совсем честно
,но мне остается только либо подключить динамически многопоточность, либо придумать какой нибудь изврат.
Отлаживать алгоритм — влом, а вот заюзать системную многопоточность — вполне по силам
On 02.05.2011 13:11, b099ard wrote:
> Система тестирования о ней ничего не знает и компилирует программу как обычную, > без подключения сторонних библиотек, может быть это не совсем честно > ,но мне остается только либо подключить динамически многопоточность, либо > придумать какой нибудь изврат. > Отлаживать алгоритм — влом, а вот заюзать системную многопоточность — вполне по > силам
Что такое "система тестирования", мы не знаем, ты на капу, на капу дави.
pthread очень даже "системная многопоточность".
Здравствуйте, MasterZiv, Вы писали:
MZ>On 02.05.2011 13:11, b099ard wrote:
>> Система тестирования о ней ничего не знает и компилирует программу как обычную, >> без подключения сторонних библиотек, может быть это не совсем честно >> ,но мне остается только либо подключить динамически многопоточность, либо >> придумать какой нибудь изврат. >> Отлаживать алгоритм — влом, а вот заюзать системную многопоточность — вполне по >> силам
MZ>Что такое "система тестирования", мы не знаем,
Я тоже не вкурсе
MZ>pthread очень даже "системная многопоточность".
В c/c++ многопоточности нет — с этим согласен
Здравствуйте, MasterZiv, Вы писали:
MZ>On 05/02/2011 11:06 AM, b099ard wrote:
>> Что для этого лучше использовать?
MZ>Не надо "запускать рекурсивно себя" и "налаживать передачу данных".
MZ>Используй потоки. Есть POSIX -библиотека pthread, она переносима и её тебе MZ>вполне хватит.
Всего скорей, когда (препод?) увидит -lpthread то сделает а-та-та
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].