распараллеливание и ресурсоёмкость
От: vvv848165@ya.ru  
Дата: 16.04.19 08:38
Оценка: 3 (1)
когда-то давно распараллеливал на С++ при помощи CreateThread — было просто чудо!
работа идеально делилась на количество потоков — ресурсоёмкости не добавлялась

на С# паралелил при помощи Parallel.For — какая-то жуть — накидывает 5% нагрузки в лучшем случае
а иногда так глючит что распараллеленый код выполняется за большее количество времени

что за хрень из-за чего?

пример кода
double[][] tmp = new double[no_channel][];

//for(int ic=0;ic<no_channel;ic++){
Parallel.For(0, no_channel, (Action<int>)((ic) =>
{
tmp[ic] = new double[no_point];
fs[ic].Next(ref tmp[ic], src);
}));
//}
Next — ресурсоёмкая функция с циклами
no_channel — от 8 до 16 (процессор 4х ядерный)
В чём косяк может быть?

Можно ли как нибудь передать ссылочную переменную?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.