[AIFFEL] 22.Feb.23 - Multi_processing, Multi_threading

Deok Jong Moon·2022년 2월 23일
0

오늘의 학습 리스트

  • 작업할 때 더 빠르게 하는 방법

    • concurrency(동시성)
      • 한 주방장이 요리 여러 개 동시에 하는 것
      • 그러나 정말 완전 동시에 여러 개는 못함.
      • 그저 하나 어느 정도 해놓고, 다른 거 해놓고...
    • parallelism(병렬성)
      • 정말로 동시에 하는 것
      • 이를 위해서는 task를 쪼개고, 쪼개진 task를 할 수 있는 여럿의 주방장이 필요함
  • 작업 중 느려지게 되는 이유 typically 2가지

    • CPU bound : CPU 속도의 제한 때문에(계산들이 많을 경우)
    • I/O bound : 데이터 입출력 시 속도의 제한 때문에(데이터가 클 경우, 그런데 요즘은 SSD로 많이 희석됨)

  • 프로세스(Process)

    • 일단 CPU 하나가 작업을 시작하면 프로세스 하나가 생기는 것 같다.
    • 그리고 이 프로세스는 CPU 하나에 할당된다...?
  • 쓰레드(Thread)

    • 프로세스가 작업할 때 subtask같이 나누는데 그거 하나당 thread라고 표현하는 것 같다.
    • 프로세스 안에 여러 개의 thread가 있을 수 있음
  • 프로파일링

  • time.sleep()

for count in range(5):
    print(time.ctime())
    # Prints the current time with a five second difference
    time.sleep(5)
>>> Sun Jan 27 18:46:24 2019
>>> Sun Jan 27 18:46:29 2019
>>> Sun Jan 27 18:46:34 2019
>>> Sun Jan 27 18:46:39 2019
>>> Sun Jan 27 18:46:44 2019
print("*    .\n·   *\n  *   *\n🌲 🦕 🌳")

-> 눈 내리는 코드...

느낀점

흠... 여태까지 그냥 수학적인 매력과 프로그래밍 언어의 논리적인 면에 많이 빠져있었는데, 정말 무언가 코드를 짜서 그 product가 돌아가게 한다는 것은 많은 것을 고민해야되는 거구가 싶었다.
특히 컴퓨터 쪽에서는 로딩 시간, 하드웨어 등이 있기 때문에 속도, 메모리 효율 같은 걸 중요하게 여기는 구나 싶었다.

DeepML

  • 오늘이 마지막이었다.
  • RNN 관련 발표를 또 하게 되었는데, 평상시 보던 압축된 형태의 모습이 아니라 뉴런 개수로 표현한 RNN을 이해하기 위해 노력했다.
profile
'어떻게든 자야겠어'라는 저 아이를 닮고 싶습니다

0개의 댓글