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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.