생활
병렬 파일을 입출력 할 수 있는 방법이 궁금합니다.
안녕하세요!
윈도우 기반에서 대용량 파일을 여러 개로 분할하여 저장하려는데요.
iocp 완료포트 기반으로 저장하도록 했는데, 파일 저장 시간을 보다 더 단축 시키고 싶습니다.
CPU는 멀티코어를 최대한 활용하는 openmp 나 opencl 같은 병렬 연산 방법이 있던데,
HDD/SSD 에 파일을 저장하는 것도 혹시 여러 가지의 파일을 병렬적으로 저장할 수 있는 방법이 있는지 너무 궁금합니다.
55글자 더 채워주세요.
2개의 답변이 있어요!
파일 복사는 cpu-intensive한 작업이 아닙니다.
HDD나 SSD를 RAID0으로 구성하는 등의 방법으로 I/O 자체의 속도를 늘릴 수는 있습니다.
파일을 물리적인 HDD나 SSD 여러개에 나눠서 저장하면 더 빨리 저장할 수도 있습니다.
CPU를 많이 사용하지 않는다면 LZ4 압축 등으로 저장할 파일의 크기를 낮춰도 됩니다.
파일 읽기 쓰기를 빠르게 하기 위해서는 IO를 비동기적으로 하도록 프로그래밍을 하는 것이 중요합니다.
IOCP 를 통해 파일 작업을 하셨다면(그리고 코드에 문제가 없다면) 애플리케이션 프로그래머가 더 할 수 있는 일은 없습니다.
더 빠른 디스크를 사셔 쓰셔야 합니다.