Организация параллельных вычислений в цикле
Добавлено: 11 мар 2012, 20:02
Организация параллельных вычислений в цикле
Как говорится "век живи, век учись"....
Никогда раньше не задавался целью разобраться с подобным вопросом, но видимо время пришло.
И сразу возник ряд вопросов.
Сделал небольшой пример, так как не привык верить наслово: так что каждый желающий может попробовать.
По логике, прирост должен быть в случае наличия нескольких ядер процессора.
При чем, если выполнять разбиение на количество параллельных процессов равное количеству ядер на борту, быстродействие должно быть максимальным.
Но получается не совсем так: Получается совсем не логично, т.е. в один поток выполняется медленнее чем в два.
Если при 2-х ядрах это понятно, то для одного нет.
Если предположить, что в два потока процессор загружается более плотно, нежели в один и за счет этого имеем выигрыш. То почему этого не происходит на четырех потоках или на 2-х ядерном и четырех потоках?
Еще не понятно, если необходимо изменить количество потоков в зависимости от конфигурации или ситуации, как это сделать. Т.е. этот вариант не прокатывает, вообще ничего не считается: получается только так сконфигурировать: --------------
1. Кто-нибудь может объяснить в чем дело.
2. Не имею доступа к 4-х ядерному компу, хотелось бы посмотреть результаты прогонов.
Как говорится "век живи, век учись"....
Никогда раньше не задавался целью разобраться с подобным вопросом, но видимо время пришло.
И сразу возник ряд вопросов.
Сделал небольшой пример, так как не привык верить наслово: так что каждый желающий может попробовать.
По логике, прирост должен быть в случае наличия нескольких ядер процессора.
При чем, если выполнять разбиение на количество параллельных процессов равное количеству ядер на борту, быстродействие должно быть максимальным.
Но получается не совсем так: Получается совсем не логично, т.е. в один поток выполняется медленнее чем в два.
Если при 2-х ядрах это понятно, то для одного нет.
Если предположить, что в два потока процессор загружается более плотно, нежели в один и за счет этого имеем выигрыш. То почему этого не происходит на четырех потоках или на 2-х ядерном и четырех потоках?
Еще не понятно, если необходимо изменить количество потоков в зависимости от конфигурации или ситуации, как это сделать. Т.е. этот вариант не прокатывает, вообще ничего не считается: получается только так сконфигурировать: --------------
1. Кто-нибудь может объяснить в чем дело.
2. Не имею доступа к 4-х ядерному компу, хотелось бы посмотреть результаты прогонов.