인텔 코어 듀오 CPU를 사용하여 사용자 지정 애플리케이션에서 Amazon S3에서 대량 데이터 다운로드 속도를 높일 때 몇 개의 스레드를 실행할 수 있습니까?


0

사용할 수있는 최대 스레드 수를 어떻게 알 수 있습니까? 나는 프로그래밍을 처음 사용하므로 알아야 할 것을 알아 내려고 노력 중입니다. Amazon S3에서 다운로드 할 파일이 950GB입니다. 나는 각각이 그 양의 절반을 병렬로 실행하는 두 개의 스레드를 사용할 수 있다고 생각했습니다.

내 애플리케이션을 멀티 스레딩하여 Amazon S3에서 대량 데이터 다운로드 속도를 높이고 싶지만 컴퓨터가 멀티 스레딩을 지원하는지 먼저 확인하는 것이 좋습니다.

컴퓨터 사양 :

  • 모델 : MacBook (13 인치, 2010 년 중반, A1342)
  • 프로세서 : 2.4 GHz Intel Core Duo
  • 메모리 : 8GB 1067MHz DDR3
  • 소프트웨어 : MacOS Sierra 10.12.6

프로세서가 매우 오래되어 중단되어 인텔 하이퍼 스레딩을 지원하지 않습니다. 멀티 스레딩에 좋은지 잘 모르겠습니다. 그러나 멀티 스레딩을 지원할 수 있다면 얼마나 많은 스레드를 지원할 수 있으며 너무 많은 스레드를 사용하면 성능에 영향을 줄 수 있습니까?

내가 틀렸다면 나를 수정하십시오. 그러나 비 하이퍼 스레딩 코어는 1 개의 스레드 만 지원할 수 있으므로 프로세서가 최대 2 개의 스레드를 지원할 수 있다고 생각합니다.


1
멀티 태스킹 을 읽어야 할 것 같습니다 . CPU 바운드 작업에서 I / O 바운드 작업을 알리는 것이 매우 중요합니다.
Daniel B

“Amazon S3에서 대량 데이터 다운로드 속도를 높이고 싶습니다…”라고 말할 때 정확히 무엇을 의미합니까? 파일을 다운로드하고 있습니까? 또는 다른 것? Amazon S3는 단지 파일 스토리지 설정입니다. 멀티 스레딩이 이와 같은 대역폭 바운드 작업에 어떻게 도움이되는지 잘 모르겠습니다.
JakeGould

나는 프로그래밍을 처음 사용하므로 알아야 할 것을 알아 내려고 노력 중입니다. Amazon S3에서 다운로드 할 파일이 950GB입니다. 필자는 각각 다운로드하는 양의 절반을 병렬로 실행하는 두 개의 스레드를 사용할 수 있다고 생각했습니다. @JakeGould
briennakh

1
@briennakh 이 답변에서 언급했듯이 파일 다운로드는 CPU 집약적 인 작업이 아닙니다. 둘 이상의 파일을 동시에 다운로드하려고 시도 할 수있는 여러 프로세스를 시작할 수 있지만 CPU 바운드 작업은 아닙니다. 그것은 모두 대역폭과 네트워크 연결에 달려 있습니다.
JakeGould

아, 알았어 감사합니다. 제 멍청한 질문에 답변 해 주셔서 감사합니다. 이것이 효과가 있다고 생각한 이유는 다음과 같은 권장 사항 때문입니다. boto3.readthedocs.io/en/latest/guide/…
briennakh

답변:


2

귀하의 질문에 몇 가지 잘못된 가정이 있으므로 여기에서 명확히하겠습니다.

  1. 단일 코어 CPU에서도 멀티 스레딩이 가능합니다. 실행은 시간이 지남에 따라 특정 순간에 1 개의 스레드가 활성화되지만 전체 스레드 실행은 병렬입니다.
  2. 멀티 스레딩은 속도 향상과 동일하지 않습니다. 순진하게 설계된 경우 멀티 스레딩 앱은 항상 단일 스레드 앱보다 수십 또는 수백 배 느립니다.
  3. 99 %의 경우 외부 네트워크에서 다운로드하는 것은 멀티 스레딩에 의존하지 않습니다. 전화 접속 모뎀 시대의 NetAnts, ReGet 및 기타 앱에서 구현 된 것처럼 다중 범위 HTTP 다운로드를 살펴볼 가치가 있습니다. 그러나 다양한 네트워크 정책 및 관련 서버로 인해 다중 범위 다운로드가 일반적인 것보다 빠를 수 있다는 보장은 없습니다.

결국. 앱에서 통계를 수집해야합니다. 가장 느린 작업이란 무엇입니까? 그런 다음 속도를 더 높이도록 다시 디자인하십시오.


1

사용할 수있는 최대 스레드 수를 어떻게 알 수 있습니까?

Intel Core Duo에는 2 개의 코어 단일 스레드 프로세서가 있으므로 2 개의 스레드가 있습니다. 각 코어에는 단일 스레드 기능이 있습니다.

그러나 멀티 스레딩을 지원할 수 있다면 얼마나 많은 스레드를 지원할 수 있으며 너무 많은 스레드를 사용하면 성능에 영향을 줄 수 있습니까?

2 개의 스레드를 지원합니다.

그래서 내 프로세서가 최대 2 개의 스레드를 지원할 수 있다고 생각하고 그 후에는 더 이상 스레드가 무시할만한 영향을 미칩니다.

2 개 이상의 스레드를 처리 할 수 ​​없습니다. 하드웨어로 인해 2 개의 스레드 만 생성 할 수 있으므로 다중 스레드 응용 프로그램에는 2 개의 스레드 만 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.