CLIEN

본문 바로가기 메뉴 바로가기 보기설정 테마설정
톺아보기 공감글
커뮤니티 커뮤니티전체 C 모두의광장 F 모두의공원 I 사진게시판 Q 아무거나질문 D 정보와자료 N 새로운소식 T 유용한사이트 P 자료실 E 강좌/사용기 L 팁과강좌 U 사용기 · 체험단사용기 W 사고팔고 J 알뜰구매 S 회원중고장터 B 직접홍보 · 보험상담실 H 클리앙홈
소모임 소모임전체 ·굴러간당 ·아이포니앙 ·주식한당 ·MaClien ·방탄소년당 ·일본산당 ·소시당 ·개발한당 ·자전거당 ·이륜차당 ·AI당 ·안드로메당 ·소셜게임한당 ·골프당 ·바다건너당 ·걸그룹당 ·곰돌이당 ·나스당 ·콘솔한당 ·가상화폐당 ·키보드당 ·클다방 ·패스오브엑자일당 ·리눅서당 ·퐁당퐁당 ·물고기당 ·전기자전거당 ·노젓는당 ·디아블로당 ·찰칵찍당 ·라즈베리파이당 ·3D메이킹 ·X세대당 ·ADHD당 ·AI그림당 ·날아간당 ·사과시계당 ·육아당 ·배드민턴당 ·야구당 ·농구당 ·블랙베리당 ·비어있당 ·FM당구당 ·블록체인당 ·보드게임당 ·활자중독당 ·볼링친당 ·캠핑간당 ·냐옹이당 ·문명하셨당 ·클래시앙 ·요리한당 ·쿠키런당 ·대구당 ·DANGER당 ·뚝딱뚝당 ·개판이당 ·동숲한당 ·날아올랑 ·e북본당 ·갖고다닌당 ·이브한당 ·패셔니앙 ·도시어부당 ·FM한당 ·맛있겠당 ·포뮬러당 ·젬워한당 ·안경쓴당 ·차턴당 ·총쏜당 ·땀흘린당 ·하스스톤한당 ·히어로즈한당 ·인스타한당 ·IoT당 ·KARA당 ·꼬들한당 ·덕질한당 ·어학당 ·가죽당 ·레고당 ·LOLien ·Mabinogien ·임시소모임 ·미드당 ·밀리터리당 ·땅판당 ·헌팅한당 ·오른당 ·영화본당 ·MTG한당 ·소리당 ·노키앙 ·적는당 ·방송한당 ·PC튜닝한당 ·그림그린당 ·소풍간당 ·심는당 ·품앱이당 ·리듬탄당 ·달린당 ·Sea마당 ·SimSim하당 ·심야식당 ·윈태블릿당 ·미끄러진당 ·축구당 ·나혼자산당 ·스타한당 ·스팀한당 ·파도탄당 ·테니스친당 ·테스트당 ·빨콩이당 ·공대시계당 ·여행을떠난당 ·터치패드당 ·트윗당 ·창업한당 ·VR당 ·시계찬당 ·WebOs당 ·위스키당 ·와인마신당 ·WOW당 ·윈폰이당
임시소모임
고객지원
  • 게시물 삭제 요청
  • 불법촬영물등 신고
  • 쪽지 신고
  • 닉네임 신고
  • 제보 및 기타 제안
© CLIEN.NET
공지[점검] 잠시후 서비스 점검을 위해 약 30분간 접속이 차단됩니다. (금일 18:15 ~ 18:45)

리눅서당

Programming
[ 파이썬 ] 멀티쓰레드 문의 2

전설속의미남님
3,529
2021-09-13 15:19:19 수정일 : 2021-09-13 16:15:23 121.♡.218.142

파이썬(cpython)은 

  GIL특성으로 멀티쓰레드 코딩을 해도,

  다중 CPU Core/Thread 환경에서도 실제로 동시에 1개의 쓰레드(코드)만 도는 것으로 알고 있습니다. 

  저의 이해는 이러면, 싱글 CPU/Core/Thread(단일 코어 CPU)에서 멀티쓰레드(코드)응 구현하는 것이랑 비슷한가 아닌지요? 작업의 동시성 비스무리 호과를 가지는 장점만 누리는…


1, 저의 이해가 맞는지 궁금합니다.

2. CPython이 아닌 다른 구현체(Jython, IronPython)의 파이썬을 쓰면, 일반적인 멀티쓰레드 on 멀티 CPU Core/Thread에서의 장점과 동작을 가질 수 있는지 궁금 합니다. Pypy, Cython등 다른 구현체를 사용해도, 가존 Cpython에서 사용한 파이썬 코드를 그대로 사용이 가능 하겠지요 ?

3. 2번이 가능하다면 mutex lock 처리도 가능 할런지요 ?

4. C 바이너리 디버깅을 위한 GDB등 디버그 같은 유용한 것이 있을런지요 ?

5. 파이썬 관점에서는 CPU에서 HT/SMT의 CPU Thread도 동일한 Core로 처리되는 지요? CPU Thread의 투명성 …


감사합니다. 

전설속의미남님 님의 게시글 댓글
  • 주소복사
  • Facebook
  • X(Twitter)
댓글 • [2] 을 클릭하면 간단한 회원메모를 할 수 있습니다.
아범테크
IP 175.♡.33.245
09-18 2021-09-18 11:14:57 / 수정일: 2021-09-18 14:27:20
·
1. 1개의 context를 골라서 실행하는 게 맞습니다. 그 이유때문에 파이썬 프로그래밍 추세는 완전히 바뀌어서 이제 쓰레드는 거의 버려졌고, multiprocessing 모듈과 coroutine 을 씁니다.
2. Jython, IronPython 는 이제 일반적인 상황에서는 사실상 버려진 프로젝트입니다. 그쪽에서는 쓰레드를 잘 처리할 수 있는지는 모르겠는데, 둘 다 버려진 프로젝트여서 파이썬 3을 지원하지 못합니다. 그래서 요즘 Cpython에서 동작하는 코드들을 돌리지 못합니다.
3. 정리하자면 쓰레드 대신 멀티 프로세스 기반인 multiprocessing 모듈을 쓰시는 것을 추천합니다. 파이썬 동시성 프로그래밍은 GIL문제를 해결하는 대신에 멀티프로세스로 넘어갔는데, 멀티프로세스 기반 mutex랑 semaphore 들이 있습니다.
4. CPython은 C로 만들어져 있고, 각종 모듈들이 네이티브 C에 상당히 가깝게 만들어져있습니다. 그냥 GDB돌릴 수 있어요. 파이썬 전용으로는 pbt가있고요. 디버깅 툴이 풍부한지는 그냥 IDE쓰시면 금방 나올겁니다.
5. 저는 이 분야는 모르겠지만, 파이썬은 기본적인 유닉스 OS레벨 추상화만 씁니다. 그리고 유닉스 API 에서는 기본적인 멀티쓰레드/프로세스 추상화는 HT/SMT 신경 안쓰지 않나요? 인터프리터 언어에서 HT/SMT를 고려해야할 정도의 연산을 쓰는 것도 잘 들어본 적이 없고요. scipy같은걸 쓰지 않는 이상....

상당한 수준의 로우레벨 멀티쓰레드를 원하시면 그냥 C/C++로 코딩하신 다음 파이썬 모듈에다가 붙이는 것을 추천드립니다. 텐서플로우 같이 대부분의 머신러닝 프레임워크들이 그러듯이요.
아범테크
IP 211.♡.214.176
09-18 2021-09-18 11:22:48
·
아참, 어떤 걸 하시려는지는 모르겠지만 분산컴퓨팅을 하시려면 Dask나 Ray같은 프레임워크들이 있습니다.
새로운 댓글이 없습니다.
이미지 최대 업로드 용량 15 MB
업로드 가능 확장자 jpg,gif,png,jpeg,webp
지나치게 큰 이미지의 크기는 조정될 수 있습니다.
목록으로
글쓰기
목록으로 댓글보기 이전글 다음글
아이디  ·  비밀번호 찾기 회원가입
이용규칙 운영알림판 운영소통 재검토요청 도움말 버그신고
개인정보처리방침 이용약관 책임의 한계와 법적고지 청소년 보호정책
©   •  CLIEN.NET
보안 강화를 위한 이메일 인증
안전한 서비스 이용을 위해 이메일 인증을 완료해 주세요. 현재 회원님은 이메일 인증이 완료되지 않은 상태입니다.
최근 급증하는 해킹 및 도용 시도로부터 계정을 보호하기 위해 인증 절차가 강화되었습니다.

  • 이메일 미인증 시 글쓰기, 댓글 작성 등 게시판 활동이 제한됩니다.
  • 이후 새로운 기기에서 로그인할 때마다 반드시 이메일 인증을 거쳐야 합니다.
  • 2단계 인증 사용 회원도 최초 1회는 반드시 인증하여야 합니다.
  • 개인정보에서도 이메일 인증을 할 수 있습니다.
지금 이메일 인증하기
등록된 이메일 주소를 확인하고 인증번호를 입력하여
인증을 완료해 주세요.