Skip to content

vmyakovlev/test_lx

Repository files navigation

Написать программу на C++ 11 (или C++ 14) которая выполняет избыточные вычисления используя несколько потоков:

Потоки А-1..А-M генерируют блоки случайных данных. Количество потоков, блоков и размер блока задается параметрами командной строки. Количество блоков может быть очень большим.

Потоки Б-1..Б-N вычисляют CRC32 (можно использовать готовую реализацию). Количество потоков задается параметром командной строки.

Когда все потоки Б вычислят CRC32 для какого-то блока, надо сравнить полученные значения и если они не совпадают записать блок в файл и вывести сообщение в std::cout.

Потоки A и Б должны работать параллельно.

//------------------------------

я правильно понял? - создается А поток, который генерирует X блоков размером S.

[OE]. Создается несколько потоков А (всего M штук, M задается параметром командной строки). Блок генерируется одним потоком, разные блоки могут быть сгенерированы разными потоками A.

После генерации каждого блока создается N потоков B, который считают CRC для только что созданного блока потом А,т.е. потоки Б-1..Б-N создаются для каждого блока или их кол-во фиксировано для всего процесса?

[OE]. Нет необходимости делать последовательно генерацию блоков и их обсчёт. Потоки Б и А работают одновременно (одни генерируют, другие в это время обсчитывают уже сгенерированные блоки).

запуск:

app -a5 -b5 -c10 -s20 -a5 кол-во потовов А -b5 кол-во потовов В -c10 кол-во блоков -s20 размер блока в байтах

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors