Информация об изменениях

Сообщение всё перепробывал от 17.04.2019 9:33

Изменено 17.04.2019 9:40 vvv848165@ya.ru

всё перепробывал
даже копирование данных до и после не спасло

private struct MyDataThread {
            public double[][] tmp;
            public FilterSections[] fs;
            public double[] src;
            public long no_point;
        }
        private static MyDataThread MyAction(int ic, ParallelLoopState p, MyDataThread obj)
        {
            obj.tmp[ic] = new double[obj.no_point];
            obj.fs[ic].Next(obj.tmp[ic], obj.src);
            return obj;
        }


.................
Parallel.For<MyDataThread>(0, no_channel, () => {
                MyDataThread dt = new MyDataThread();
                dt.tmp = tmp;
                dt.fs = fs;
                dt.src = src;
                dt.no_point = no_point;
                return dt; 
            }, MyAction, (MyDataThread obg) => {
                tmp = obg.tmp;
            });
всё перепробывал
даже копирование данных до и после не спасло

private struct MyDataThread {
            public double[][] tmp;
            public FilterSections[] fs;
            public double[] src;
            public long no_point;
        }
        private static MyDataThread MyAction(int ic, ParallelLoopState p, MyDataThread obj)
        {
            obj.tmp[ic] = new double[obj.no_point];
            obj.fs[ic].Next(obj.tmp[ic], obj.src);
            return obj;
        }


.................
Parallel.For<MyDataThread>(0, no_channel, () => {
                MyDataThread dt = new MyDataThread();
                dt.tmp = tmp;
                dt.fs = fs;
                dt.src = src;
                dt.no_point = no_point;
                return dt; 
            }, MyAction, (MyDataThread obg) => {
                tmp = obg.tmp;
            });


В чём может быть ещё потеря производительности

если в С++ всё по честному (если распределил на 4 проца — то выполнится в 4 раза быстрее)
то в С# какой-то облом (если распределил на 4 проца то выполнится только в 3 раза быстрее (а то и в два))