Skip to content

Latest commit

 

History

History

wordscount

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 

Описание

Для практики написания конкурентных программ мы напишем программу, которая рекурсивно проходит по файлам в указанной директории и посчитает количество слов во всех файлах. Подсчет слов в последовательной версии программы уже реализован. Вам нужно реализовать 2 параллельные версии этой программы.

  1. В первой версии (parallel) подсчет слов для каждого файла должен быть реализован в отдельной горутине.
  2. Во второй версии (limited-parallel) мы должны ограничить уровень параллелизма запустив воркер горутины в колличестве, равном количеству ядер процессора. Эти горутины должны через канал получать задание для рассчета слов

После запуска программы запустите make cpu-profile и make trace-profile чтобы визуально просмотреть профили программы. В трейс файле для sequential режиме вы должны видеть загрузку только одного ядра. Для parallel - большое кол-во горутин (даже слишком), которые распределены между разными ядрами и для limited-parallel - кол-во горутин соизмеримое с кол-вом ядер. В cpu-профайле вы можете увидеть различные виды графиков и флейм-чартов для того чтобы понять на что процессор тратит свое время.

Конфигурация

Конфигурация уже реализована. Она позволяет выбрать директорию, режим запуска и пути для создания файлов с cpu-профилем и трейсингом.

Тест

Запустите программу с помощью make run path=<path> mode=<mode>, например make run path=.. mode=parallel. Параметр path - путь до директории, в которой будут производиться вычисления. Параметр mode - режим запуска программы. Возможные значения: sequential, parallel, limited-parallel. По умолчанию sequential. Все режимы должны выводить в консоль одинаковое количество слов для одной и той же директории.