Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
#1

Параллельная обработка - C++

15.04.2014, 16:07. Просмотров 809. Ответов 6
Метки нет (Все метки)

Добрый день!

Подскажите, пожалуйста, как параллельно считать содержимое всех файлов из директории?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.04.2014, 16:07     Параллельная обработка
Посмотрите здесь:

Параллельная обработка файлов - C++
Не понимаю как организовать параллельную обработку файлов в данной программе. Смысл в том что есть папка в которой идут txt файлы, в этих...

Чтение строки неограниченной длины и её параллельная обработка - C++
Здравствуйте. В ходе реализации алгоритма для поиска возникла проблема в том, что в условии написано, что входная строка может быть сколь...

Параллельная прямая - C++
Надо по заданным A,B,C найти две прямые на расстоянии от заданной от R. Кто-нибудь парочку формул для нахождения не скинет?

Параллельная работа лифтов - C++
Задача реализовать модель системы управления лифтами. Функция управления одним лифтом написана, выполняется корректно. Вопрос в том, как...

Параллельная работа с документами - C++
Доброго всем помогите доработать код, нужно организовать параллельную работу с документами...Можно сам принцип изложить не так как у меня?...

Параллельная работа с файлами - C++
Помогите, есть такое задание: На компьютере существует папка с файлами. Файлов много, их имена заранее неизвестны, в каждом файле...

Параллельная реализация алгоритма Дейкстры - C++
Здравствуйте. Вообщем, надо сделать алгоритм Дейкстры на MPI, но выполнятся он будет не на кластере, а на одном компе. (далее узел -...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1428 / 765 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
15.04.2014, 17:09     Параллельная обработка #2
Ну, к примеру так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
#include <fstream>
#include <iterator>
#include <vector>
#include <boost/filesystem.hpp>
#include <future>
 
namespace fs = boost::filesystem;
 
template <typename T>
std::vector<T> reed_file(const std::string& filename) {
   using input = std::istream_iterator<T>;
   std::ifstream ifs(filename);
   if (!ifs.is_open()) return {};
   std::vector<T> data {input(ifs), input()};
   return data;
}
 
std::vector<fs::path> getFiles(const std::string& directoryName)
{
   std::vector<fs::path> res;
   for ( fs::directory_iterator it(directoryName), end; it != end; ++it)
   {
      try
      {
         if ( fs::is_regular_file(*it ) )
            res.push_back(*it);
         else if (fs::is_directory(*it) && !fs::is_symlink(*it) )
         {
            const std::vector<fs::path>& subDirectory = getFiles( it->path().generic_string() );
            std::copy(subDirectory.begin(), subDirectory.end(), std::back_inserter(res) );
         }
      }
      catch(const fs::filesystem_error& ex) { }
   }
   return res;
}
 
int main()
{
   const std::string mydirectory = "D:\\Temp";
   std::vector<fs::path> files(getFiles(mydirectory));
 
   std::vector<std::future<std::vector<double>>> futures;
   for (auto& filename : files)
       futures.emplace_back(std::async(reed_file<double>, filename.generic_string()));
 
   int i = 0;
   for (auto& f : futures) {
      std::cout << "file #" << ++i << "\n";
      for (auto& data : f.get())
         std::cout << data << " ";
      std::cout << "\n";
   }
 
   return 0;
}
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
15.04.2014, 20:41  [ТС]     Параллельная обработка #3
При компиляции выдает ошибку
C++
1
1>LINK : fatal error LNK1104: cannot open file 'libboost_filesystem-vc120-mt-gd-1_55.lib'
newbie666
Заблокирован
15.04.2014, 20:49     Параллельная обработка #4
ну а boost то у тебя е?
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
15.04.2014, 20:51  [ТС]     Параллельная обработка #5
Я скачал архив с офф сайта boost.org, распаковал его, вроде бы откомпилировал с помощью bjam, и указал путь в линкере и в компиляторе...
newbie666
Заблокирован
15.04.2014, 20:58     Параллельная обработка #6
ну так найди файл 'libboost_filesystem-vc120-mt-gd-1_55.lib'
и положи куда надо.
А ещё учти что судя по названию этот файл для сборки MultiThreaded Debug
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.04.2014, 21:27     Параллельная обработка
Еще ссылки по теме:

Параллельная работа двух потоков - C++
Добрый день ! Подскажите пожалуйста , как сделать так, что-бы один поток считывал строки, а другой считал буквы и слова ? ...

Параллельная сортировка, протестировать алгоритм - C++
Надо протестировать масштабируемость работы алгоритма для параллельной сортировки, у кого более 2 процессорных ядер. На 2-х ядрах...

Параллельная обработка файлов - Visual C++
Здравствуйте. Подскажите пожалуйста как на с++ реализовать обработку файлов параллельно в несколько потоков. Например, если дано много...

Параллельная обработка изображений - C#
Добрый день, на данный момент начал изучение темы параллельных вычислений. Написал простую программу, которая меняет изображение на...

.NET 4.x Параллельная обработка очереди файлов - C#
Добрый день! Подскажите пожалуйста, каким образом лучше решить следующую задачу: Имеется папка, в которой периодически будут...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Fallenworld
76 / 76 / 9
Регистрация: 14.04.2014
Сообщений: 408
15.04.2014, 21:27  [ТС]     Параллельная обработка #7
Все, спасибо, разобрался, у меня был случайно нетот путь в либах указан.

П.С. сборка естественно мултисредед, так как суть кода в параллельной обработке.
Yandex
Объявления
15.04.2014, 21:27     Параллельная обработка
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru