parallel-processing- все статьи тега
Являются ли структуры C# потокобезопасными?
Является ли структура C# потокобезопасной? Например, если есть: struct Data { int _number; public int Number { get { return _number; } set { _number = value; } } public Data(int number) { _number = number; } } В другом типе: class DadData { public Data TheData { get; set; } } - это свойство данных, потокобезопасным? ...
Почему параллельная версия была медленнее, чем последовательная версия в этом примере?
В последние несколько дней я немного изучил параллелизм и наткнулся на этот пример. Я положил его рядом с последовательным циклом for следующим образом: private static void NoParallelTest() { int[] nums = Enumerable.Range(0, 1000000).ToArray(); long total = 0; var watch = Stopwatch.StartNew(); for (int i = 0; i < nums.Length; i++) { total += nums[i]; } Console.WriteLine("NoParallel"); Console.WriteLine(watch.ElapsedMilliseconds); Console.WriteLin ...
Векторизация для meshgrid в Matlab (или Octave)
Векторизованный код в Matlab работает намного быстрее, чем цикл for (см. параллельные вычисления в Октаве на одной машине-пакет и Пример для конкретных результатов в Октаве) С учетом сказанного, есть ли способ векторизации кода, показанного далее в Matlab или Octave? x = -2:0.01:2; y = -2:0.01:2; [xx,yy] = meshgrid(x,y); z = sin(xx.^2-yy.^2); ...
Каков наилучший способ распараллеливания алгоритма преобразования Хафа?
В линейном преобразовании Хоу для каждого пикселя ребра мы находим соответствующие Rho и тета в пространстве параметров Хоу. Аккумулятор для Ро и тета должен быть глобальным. Если мы хотим распараллелить алгоритм, как лучше всего разделить пространство аккумулятора? ...
Параллельные циклы while в Python
Я довольно новичок в Python и программировании в целом, и я создаю игру в стиле виртуального питомца для моей младшей сестры. Можно ли запустить 2 , пока циклы параллельны друг другу в python? например: while 1: input_event_1 = gui.buttonbox( msg = 'Hello, what would you like to do with your Potato Head?', title = 'Main Screen', choices = ('Check Stats', 'Feed', 'Exercise', 'Teach', 'Play', 'Go to Doctor', 'Sleep', 'Change Favourite Thing', 'Get New Toy', 'Quit')) ...
Выполняются ли рабочие группы OpenCL одновременно?
Насколько я понимаю, каждая рабочая группа выполняется на GPU, а затем выполняется следующая. К сожалению, мои наблюдения приводят к выводу, что это неверно. В моей реализации все рабочие группы совместно используют большой глобальный буфер памяти. Все рабочие группы выполняют операции чтения и записи в различные позиции этого буфера. Если ядро работает непосредственно с ним, то никаких конфликтов не возникает. Если рабочая группа загружает фрагмент в локальную память, выполните некоторые вы ...
Использование CUDA с Visual Studio 2017
Я пытаюсь установить CUDA, но получаю сообщение "не найдена поддерживаемая версия visual studio". Я думаю, что это связано с тем, что я использую Visual Studio 2017 (Community), а CUDA в настоящее время поддерживает только Visual Studio 2015. К сожалению, Microsoft не позволяет мне загружать старые версии Visual Studio без оплаты абонентской платы. Есть ли способ обойти проблему совместимости с VS 2017, или Я не могу использовать CUDA? ...
Как распараллелить выполнение обработчика событий в C#
У меня есть устройство Kinect, и я разрабатываю программу с его помощью, используя C#. Для управления устройством я использовал событие AllFramesReady для обработки информации о глубине и цвете. Я создал обработчик событий для обработки данных, который называется EventHandler1. Я делаю много обработки внутри этого обработчика событий. Я хотел бы сделать еще несколько вычислений внутри второго обработчика событий с именем EventHandler2. Можно ли запустить эти 2 обработчика событий какие в осн ...
Как повторно использовать пул процессов для параллельного программирования в Python 3
Я новичок в парраллельном программировании. Моя задача-проанализировать сотни файлов данных. Каждая из этих данных составляет почти 300 МБ и может быть разрезана на множество кусочков. Мой компьютер-это 4-ядерный ПК. И я хочу получить результат по каждому из этих данных как можно скорее. Анализ каждого файла данных состоит из 2 процедур. Во-первых, считывать данные в память, а затем нарезать их на кусочки, что является интенсивной работой io. Затем сделайте много вычислений для срезов этого файл ...
Как ускорить умножение матриц в Python?
Я разрабатываю небольшую нейронную сеть, параметры которой требуют большой оптимизации, а значит, и большого времени обработки. Я профилировал свой сценарий с помощью cProfile, и то, что занимает 80% времени процессора, - это функция NumPy dot, остальное-инверсия матрицы с помощью функции numpy.linalg.solve. Моя текущая версия numpy использует blas, или это то, что кажется, так как numpy.core._dotblas.dot появляется как функция, которая занимает 80% от общего времени обработки. Поскольку это яд ...
В чем разница между параллелизмом и параллелизмом?
в чем разница между параллелизмом и параллелизмом? примеры приветствуются. ...
Как дождаться завершения всех потоков, используя ExecutorService?
Мне нужно выполнить некоторое количество задач 4 одновременно, что-то вроде этого: ExecutorService taskExecutor = Executors.newFixedThreadPool(4); while(...) { taskExecutor.execute(new MyTask()); } //...wait for completion somehow Как я могу получить уведомление, как только все они будут завершены? На данный момент я не могу думать ни о чем лучше, чем установить какой-то глобальный счетчик задач и уменьшить его в конце каждой задачи, а затем контролировать в бесконечном цикле этот счетчик ...
Оптимальное количество потоков на ядро
допустим, у меня есть 4-ядерный процессор, и я хочу запустить какой-то процесс за минимальное количество времени. Процесс идеально распараллеливается, поэтому я могу запускать его куски на бесконечном количестве потоков, и каждый поток занимает одинаковое количество времени. поскольку у меня есть 4 ядра, я не ожидаю ускорения, запустив больше потоков, чем ядер, поскольку одно ядро способно запускать только один поток в данный момент. Я не очень разбираюсь в оборудовании, так что это всего лишь ...
В чем разница между асинхронным программированием и многопоточностью?
Я думал, что они были в основном то же самое -- написание программ, которые разделяют задачи между процессорами (на машинах, которые имеют 2+ Процессоры). Тогда я читаю https://msdn.microsoft.com/en-us/library/hh191443.aspx, что говорит асинхронные методы предназначены для неблокирующих операций. Гостей ждут выражение в асинхронном методе не блокирует текущий поток, пока ожидаемая задача выполняется. Вместо этого выражение подписывает остальное метода в качестве продолжения и возвращае ...
Как дождаться завершения нескольких потоков?
каков способ просто дождаться завершения всего резьбового процесса? Например, допустим, у меня есть: public class DoSomethingInAThread implements Runnable{ public static void main(String[] args) { for (int n=0; n<1000; n++) { Thread t = new Thread(new DoSomethingInAThread()); t.start(); } // wait for all threads' run() methods to complete before continuing } public void run() { // do something here } } как я могу ...
выбор между подпроцессом, многопроцессорной обработкой и потоком в Python?
Я хотел бы распараллелить мою программу Python, чтобы она могла использовать несколько процессоров на машине, на которой она работает. Моя распараллеливание очень просто, в том, что все параллельные "потоки" программы являются независимыми и записывают их вывод в отдельные файлы. Мне не нужны потоки для обмена информацией, но крайне важно, чтобы я знал, когда потоки заканчиваются, так как некоторые шаги моего конвейера зависят от их вывода. мобильность важна, в том, что я бы как это работать ...
Как поставить задачу в спящий режим (или задержку) в C# 4.0?
здесь задач.Задержка в .NET 4.5 Как я могу сделать то же самое в .NET 4.0? ...
Параллельный wget в Bash [дубликат]
этот вопрос уже есть ответ здесь: загрузка wget с несколькими одновременными соединениями 13 ответов Я получаю кучу относительно небольших страниц с веб-сайта и задавался вопросом, Могу ли я как-то сделать это параллельно в Bash. В настоящее время мой код выглядит так, но для его выполнения требуется некоторое время (я думаю, что это замедление меня-это задержка в соединении). for i in {1..42} do wg ...
Как общая память и передача сообщений обрабатывают большие структуры данных?
глядя на подход Go и Erlang к параллелизму, я заметил, что они оба полагаются на передачу сообщений. этот подход, очевидно, облегчает необходимость сложных блокировок, потому что нет общего состояния. однако рассмотрим случай, когда многим клиентам требуется параллельный доступ только для чтения к одной большой структуре данных в памяти-например, массив суффиксов. мои вопросы: будет ли использование общего состояния быстрее и использовать меньше памяти, чем передача сообщений, поскольку бло ...
Автоматическая установка флага задания (- j) для многоядерной машины?
У меня есть Makefile на машине, которая имеет тонну ядер в нем, но я всегда, кажется, забываю писать -jX при компиляции моего проекта и это занимает гораздо больше времени, чем это должно быть. есть ли способ я могу установить -j флаг через переменную окружения или какой-либо другой постоянный файл конфигурации, чтобы make автоматически выполнял несколько заданий параллельно на этой машине? ...