Название: Параллельное заполнение одномерного массива Отправлено: Zialot от Декабрь 09, 2017, 05:37 Доброго времени суток. Начинаю изучение параллельного программирования. Хотелось бы узнать как, к примеру, можно распараллелить заполнение одномерного массива, допустим случайными числами. При помощи QThread или QtConcurrent. Буду рад любому примеру.
Название: Re: Параллельное заполнение одномерного массива Отправлено: Kurles от Декабрь 10, 2017, 03:37 Доброго времени суток. Начинаю изучение параллельного программирования. Хотелось бы узнать как, к примеру, можно распараллелить заполнение одномерного массива, допустим случайными числами. При помощи QThread или QtConcurrent. Буду рад любому примеру. Для поставленной задачи всё просто - делишь массив на кол-во блоков, равному количеству потоков, и в каждом потоке независимо заполняешь нужный блок. Примерно так:Код
Название: Re: Параллельное заполнение одномерного массива Отправлено: Igors от Декабрь 10, 2017, 12:12 Хотелось бы узнать как, к примеру, можно распараллелить заполнение одномерного массива, допустим случайными числами. При помощи QThread или QtConcurrent. Понятно что это "к примеру", но, возможно, самое важное в multi-threading - удачно выбрать (поставить) задачу. Напр в данном случае разбиение массива на части имеет отрицательный эффект (т.е. скорость ниже). Хотя это типовой прием.Неплохо начать напр с атомарного лока, он нужен частенько. Ну типа сделать "потокобезопасный" контейнер Название: Re: Параллельное заполнение одномерного массива Отправлено: Old от Декабрь 10, 2017, 18:59 Напр в данном случае разбиение массива на части имеет отрицательный эффект (т.е. скорость ниже). Хотя это типовой прием. Сможете это подтвердить кодом? |