LINUX.ORG.RU

Эмуляция «настоящей» многопоточности


0

1

Короче, штука такая: в своей программе экспериментировал с многопоточностью. В результате её (программы) изменения, у меня на компьютере с одноядерным процом всё в порядке, а у знакомого с двумя ядрами + HT (итого 4 виртуальных ядра) она иногда падает. Надо без участия знакомого найти причину этого.

Компьютера с многоядерным процессором у меня нету (БП сгорел у настольника, а бабки тратить неохота). Можно ли как-нибудь частично эмулировать поведение настоящего многоядерного процессора? Представляется так: процессорное время выделяется хаотически на разные потоки моего процесса. Можно этого как-нибудь добиться?

★★★★★

Последнее исправление: Obey-Kun (всего исправлений: 1)

думаю можно в виртуалке запускать, они вроде умеют эмулировать сколько хочешь процов.

erfea ★★★★★
()

Договорится с кем нить что б пустили по ssh?

AIv ★★★★★
()

qemu умеет на любой архитектуре и количестве процев/ядер эмулировать любое другое количество

amomymous ★★★
()

вероятность попасть на ошибку при окончания кванта эксремально ниже, чем при обработки потоков реально паралельно.

Не переключать же процессор после какждой инструкции?

namezys ★★★★
()
Ответ на: комментарий от namezys

Да, наверное, ты прав. Поищу нужное железо.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от erfea

Если у тебя одно физическое ядро в один момент времени может работать только одна инструкция. Parralelism != Concurrency. Второе можно симитировать.

dizza ★★★★★
()

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

delete83 ★★
()
Ответ на: комментарий от ZenitharChampion

у меня БП сгорел, решил пока не покупать — ботать бакалаврскую надо, а ТФ2 много времени сжирает.

Obey-Kun ★★★★★
() автор топика
Ответ на: комментарий от Obey-Kun

О, я не знал... Ну, что ж. Где-то мельком при знакомстве с Qt читал, что многие классы у них не thread-safe. Так что может даже и не твой косяк, а просто API так устроено. Надо мануалы читать. Ну и да, в такой ситуации наверное прогон под valgrind или чем-нибудь подобным мог бы дать хотя бы точку отсчета, в каком классе начинать копать. Хотя не факт.

delete83 ★★
()
Ответ на: комментарий от Obey-Kun

Между прочим, игроки в Team Fortress 2 сделали пожертвований на $430 000, для Японии. Щас создам тему в Talks. Я просто увидел твою аватарку и вспомнил, что видел такую на ЛОРе. Решил сразу как увижу кто это сказать чтобы зашёл.

ZenitharChampion ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.