, в соответствии с этим следует увеличить скорость
Глупости.Эта документация, из-за отсутствия лучшего слова, вообще неверна.
Заявление о том, что параллельный ввод-вывод увеличит производительность в целом, свидетельствует о значительном недопонимании того, как работает большинство файловых систем и дисковых систем хранения.
Почему?
Время поиска.
Как правило, файловые системы хранят файлы как можно более непрерывно.Чтобы прочитать положение X в файле, сначала необходимо расположить головки дисков над дорожкой, в которой находится сектор X. Это занимает время.Затем система должна ждать, пока этот сектор не начнет вращаться под головками дисков.Это снова требует времени.
Должно быть очевидно, почему чтение файла последовательно с вращающегося диска происходит быстрее - чтобы прочитать сектор N, головки диска должны сначала искать дорожку, которая содержит сектор N. Но поскольку файлыхранятся как можно более непрерывно, дорожка, которая содержит сектор N, также, вероятно, содержит сектор N + 1, N + 2, N + 3 и еще немного.Бросьте в кеширование с опережением чтения, что и диск (диски обычно не являются тупыми устройствами - это в значительной степени полнофункциональные компьютеры ввода-вывода со встроенными системами кэширования) и файловая система, а также последовательное чтение файла с вращающегося дискадиск стремится минимизировать время, затрачиваемое на поиск данных.
Теперь попробуйте читать параллельно.
Поток A читает сектор X. Диск пытается отследить, ожидает прохождения сектора X под головками.Пока это происходит, поток B пытается прочитать сектор Y. Диск, наконец, получает чтение сектора X, но имеет ожидающую команду для чтения сектора Y. Теперь диск должен искать заголовки на правильном пути, возможно, отказываясь от чтения, которое он сделал бы дляполучить сектор X + 1 для следующего чтения потока A, дождаться перемещения головок, затем подождать, пока сектор Y пройдет под головками для чтения.
Тем временем поток C выдает запрос на чтение сектора Z ...
И дисковые головки танцуют по всему диску.Затем подождите, пока соответствующий сектор не пройдет под головками.
Типичный SATA-диск потребительского уровня 5400 об / мин, который номинально поддерживает скорость ввода-вывода 100 МБ / с, можно уменьшить до нескольких КИЛОБАЙТОВ в секунду через такие шаблоны ввода-вывода.
Параллельное чтение или запись данных почти никогда не увеличивает скорость, особенно если вы используете стандартные файловые системы на вращающихся дисках.
Вы можете повысить производительность, используя SSD, если ввод-вывод одного потока не насыщает систему хранения - не только диск, но и весь путь от ЦП к / с диска.Многие, многие материнские платы имеют дешевые, медленные контроллеры дисков и / или не имеют пропускной способности ввода-вывода.Сколько людей полностью игнорируют контроллер диска или пропускную способность ввода-вывода материнской платы при покупке компьютера?
Существуют файловые системы, которые поддерживают параллельный ввод-вывод для повышения производительности.Они, как правило, являются частными, дорогими и FAST . IBM Spectrum Scale (первоначально GPFS) и Oracle HSM (первоначально SAMFS / QFS) - два примера.