그럼, 말씀하신 대로의 내용이 문제가 된다고 치고, 고성능의 디스크로 테스트 해보면 되겠네요?
RAM DIsk를 설치하셔서 해당 디스크 상에서 테스트 해보세요.
시스템에 설치된 RAM 속도에 비례하는 I/O를 성능을 보여줍니다.
현존하는 SSD보다 일반적으로 빠르게 동작하는 디스크 이니,
테스트 해 보시는 것을 권합니다.
(메모리의 속도에 따라 틀려지지만, 제 시스템의 경우 1TB/s 이상 측정, 크리스털 디스크마크 결과)
첨부 파일에 무료(상위버전은 유료)로 사용할 수 있는 버전의 프로그램을 하나 올려둡니다.
제한이 최대 디스크 크기가 4G 라서
설정화면에서 4095 MB 로 설정하면 됩니다. 더 큰값은 에러납니다.
하루종일 님이 쓰신 글 :
: 의견 감사 합니다.
:
: 도스프로그램은 입력을 받아 계산을 하고 계산결과를 파일로 저장 합니다.
: 도스프로그램이 동시에 여러개 실행되더라도, 입력파일 및 저장파일 이름은 다릅니다.
:
: 이런 도스 프로그램을 동시에 여러개 (CPU 코어 갯수에 비례해서 증가) 실행이 됩니다.
: 즉 동시에 여러 파일을 읽고, 여러 파일을 하드디스크에 쓰기를 하게 됩니다.
: 저장한 결과 파일 중 약 30%정도는 계산결과가 저장이 완료되지 않습니다.
:
: 저는 이 현상을 하드디스크의 쓰기 속도 문제로 생각을 하고 있기 때문에, 다른 폴더에 저장을 한다고 해도 동일 것 같다고 판단됩니다.
:
: 만약 도스프로그램 계산결과를 파일이 아닌 메모리에 저장하는 방법이 있다면,
: 해결방법이 있을것 같기는 합니다.
:
:
: Alone 님이 쓰신 글 :
: : : 아마도, 도스프로그램 저장속도를 하드디스크 가 따라가지 못해서 저장손실이 발생하는 듯 합니다.
: : 라고 하셨는데, 도스 프로그램을 쓰던 시대에 비하면, 저장 속도는 이미 충분하다 못해 넘치는 하드웨어라고 봅니다.
: : 아마 파일을 저장하기 위해 동일한 파일을 동시에 쓰레드 여러곳에서 엑세스해서 문제가 생기는 것은 아닐지요?
: :
: : 각 쓰레드 별로 폴더 구조를 만들어서 도스 실행파일이 있도록해서, 서로 다른 경로에서 실행되도록 해보시는 건 어떨까요?
: : 각 폴더 내에 별개로 결과 파일이 생성되겠지요.
: :
: :
: : 하루종일 님이 쓰신 글 :
: : : 실행 파일만 있고, 이 실행파일을 동시에 여러개 (CPU코어갯수 * 2 +1, 쓰레드 풀 사용)를 실행한다는 것입니다.
: : :
: : : 제가 이해 하기 어렵게 글을 작성한 듯 합니다.
: : :
: : : 왕초보와코드 님이 쓰신 글 :
: : : : 글 내용에 모순이 있는데요.
: : : :
: : : : 소스가 없는 도스프로그램이라, 저장을 제어 할수가 없습니다
: : : : => 이건 결국 실행파일만 가지고 있다는 거죠? 그런데 스레드로 구현했다는 말은 뭔가요?
: : : :
: : : : 아니면 실행파일을 여러개 동시에 실행했다는 말인가요?
: : : :
: : : :
: : : :
: : : : 하루종일 님이 쓰신 글 :
: : : : : 1980년대에 개발된 도스프로그램을 멀티스레드로 동시에 여러개를 실행하려 합니다.
: : : : : 동시에 여러개 실행은 잘 되는데, 문제는 동시에 여러개의 파일을 하드디스크에 저장을 하지 못하네요.
: : : : :
: : : : : 도스프로그램이라, 입력파일을 읽고 계산이 끝나면 파일로 저장을 합니다.
: : : : : 한번에 한개씩 저장할때는 문제가 없는데,
: : : : : 스레드로 구현을 하니, 여러개가 동시에 실행되면서, 하드디스크에 동시에 저장을 하니 저장파일이 깨지는 문제가 발생 합니다.
: : : : : 아마도, 도스프로그램 저장속도를 하드디스크 가 따라가지 못해서 저장손실이 발생하는 듯 합니다.
: : : : :
: : : : : 하드디스크를 SSD로 사용을 해봐도 여전히 문제가 발생 합니다.
: : : : :
: : : : : 소스가 없는 도스프로그램이라, 저장을 제어 할수가 없습니다.
: : : : :
: : : : : 이 문제를 해결 하려면, 도스프로그램이 저장하는 파일을 메모리에 저장한 후 하드디스크 저장속도를 초과하지 않게 저장을 해야 할 것 같은데,,,,
: : : : :
: : : : : 혹시 해결 방법이 있을까요?
|