У меня есть концептуальный вопрос.Сокращение времени выполнения
Предположим, у меня есть процедура (любой язык), которая принимает набор данных в качестве входных данных, обрабатывает их и записывает выходные данные в массив. Этот массив используется в потоке для дальнейшей обработки. Проблема в том, что код имеет большое время выполнения. Такой большой, что его нужно оптимизировать!
Я предлагаю разбивать набор входных данных на более мелкие куски и вызывать процедуру для каждого из данных, установленных параллельно. Звучит просто!
Следовательно, я думал написать процедуру в отдельном файле, создать отдельный исполняемый файл. Отправьте этот исполняемый файл для небольших наборов данных для пакетной обработки.
Но проблема с этим методом заключается в том, что, поскольку каждое из пакетных заданий является отдельным процессом, как создать массив, который я создавал ранее из всех этих заданий! Я могу придумать, как писать каждый вывод задания в файлы, а затем обрабатывать их для создания массива.
Есть ли лучший способ сделать что-то параллельно?
Спасибо за ваши предложения :)
Вы описываете [MapReduce] (http://en.wikipedia.org/wiki/Map_Reduce). –
Спасибо, что сообщили об этом. Я ничего не знаю об этом. Любой идеал, если он свободно доступен, и если он будет работать с ним много? – Richeek