안녕하세요 윈도우기반에서 대용량 파일을 여러개로 분할하여 저장하려는데 iocp 완료포트 기반으로 저장하도록 했는데 파일 저장 시간을 조금더 단축 시키고싶습니다.
cpu 는 멀티코어를 최대한 활용하는 openmp 나 opencl 같은 병렬 연산 방법이 있는데
HDD/SSD 에 파일을 저장하는것도 혹시 여러 파일을 병렬적으로 저장할 수 있는 방법이 있는지 궁금합니다.
병렬로 저장한다고 해도 HDD/SDD에 접근하는 것은 단일 채널을 통해서 접근하는 것이기 때문에 큰 효과는 없을 것으로 생각됩니다.
요새 하드는 버퍼가 크기 때문에 1 ~ 4 Mbyte 단위로 크게 쓰기 해보시고 (적정한 값은 시험을 통해서 얻을 수 있으리라 봅니다), 하드에 쓰는 시간 동안 어떻게하면 하드에서 데이터를 병렬로 읽어올 것이냐를 고민해 보세요. 물론 단일 채널로 접근하는 것이기 때문에 큰 의미가 없을 수도 있습니다.
SSD 제품들이 4채널 8채널 이라고 나와있는걸 본적이 있어서 혹시 병렬적으로 입출력이 가능한가 궁금했습니다. 말씀대로 버퍼크기를 조절해보면서 테스트를 해봐야겠습니다. 답변 감사합니다 ^^
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
병렬로 저장한다고 해도 HDD/SDD에 접근하는 것은
병렬로 저장한다고 해도 HDD/SDD에 접근하는 것은 단일 채널을 통해서 접근하는 것이기 때문에 큰 효과는 없을 것으로 생각됩니다.
요새 하드는 버퍼가 크기 때문에 1 ~ 4 Mbyte 단위로 크게 쓰기 해보시고 (적정한 값은 시험을 통해서 얻을 수 있으리라 봅니다), 하드에 쓰는 시간 동안 어떻게하면 하드에서 데이터를 병렬로 읽어올 것이냐를 고민해 보세요. 물론 단일 채널로 접근하는 것이기 때문에 큰 의미가 없을 수도 있습니다.
그렇군요
SSD 제품들이 4채널 8채널 이라고 나와있는걸 본적이 있어서 혹시 병렬적으로 입출력이 가능한가 궁금했습니다.
말씀대로 버퍼크기를 조절해보면서 테스트를 해봐야겠습니다.
답변 감사합니다 ^^
댓글 달기