aeuo
написал 12 сентября 2007 года в 08:13 (875 просмотров)
Ведет себя
неопределенно; открыл 5 тем в форуме, оставил 18 комментариев на сайте.
Привет!
Кто-нибудь писал что-нибудь на pthreads? подскажите, пожалуйста, где можно почитать как система распределяет нити в случае многопроцессорной платформы?Если имеется два процессора и две нити, то в каком случае эти нити буду работать одновременно на обоих процессорах?
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
ecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.
И ещё вопрос. Почему на однопроцессорной системе потоки дают выйгрыш даже если они не суспендятся I/O и делают одну и ту же работу?
Интересные вопросы. Для защиты лаб, да?
начини читать от сюда
http://en.wikipedia.org/wiki/Thread_%28computer_science%29
нет я 3 года назад закончил институт. проект пишу, по работе надо
С этим всё понятно это зависит от операционки.
А что вы думаете по поводу вот этого вопроса?
Не совсем понял вопрос. Выигрыш в более плотном использовании ресурсов. Например, пока поток спит, DMA идёт.
к примеру, мне нужно сделать несколько независимых вычислений, которые происходят в цикле:
void calc1() {
double a = 9.12;
int i=0;
for(; i < 10000; ++i)
a*=a;
}
void calc2() {
double a = 1.03;
int i=0;
for(; i < 10000; ++i)
a*=a;
}
void calc3() {
double a = 3.2;
int i=0;
for(; i < 10000; ++i)
a*=a;
}
если я запущу их последовательно:
calc1();
calc2();
calc3();
и затем параллельно — каждое вычисление в отдельном потоке, то есть три потока на каждую функцию, то параллельное вычисление будет работать быстрее даже на однопроцессорной машине.
Почему так?
Не будет оно быстрее. Кто сказал, что оно будет быстрее? На UP оно будет, в лучшем случаее, не медленне.
Я попробовал на солярке.
использовал time для замерения, запускал несколько раз и то и другое.
Я запускал с OpenMP директивами и указывал явно сколько должно использоваться потоков.
Это может быть особенностью планировщика «солярки», который даст процессу с тремя потоками больше процессорного времени чем однопоточному. Но в общем случае это быстрее не будет.
ясно. спасибо