2014-11-26 4 views
15

나는 이것이 매우 새 질문이기 때문에 사전에 사과드립니다. 그룹 프로젝트에 ipython 노트북을 사용하려고합니다. 우리가 만들고있는 프로그램은 상당히 크고 많은 수의 외부 데이터 세트를 사용합니다. 대부분의 경우 Ipython은 작동을 멈추는 것처럼 보입니다. 셀이나 여러 개의 셀을 실행하려고 시도하지만 아무 것도 발생하지 않습니다 (셀의 왼쪽에있는 작은 별표 *는 대괄호 [*]로 표시됩니다). 새 셀을 추가하고 2 + 2를 실행하려고해도 아무 일도 일어나지 않습니다. 여기서 무슨 일이 일어나고있는거야? 이 문제를 어떻게 해결할 수 있습니까? 감사!Ipython 셀의 실행이 중지되는 이유는 무엇입니까?

+1

IPython 커널이 죽지 않았다고 확신합니까? –

+0

어쩌면 있습니다! 어떻게 방지 할 수 있습니까? – user3786999

+0

Windows 사용자의 경우 바이러스 백신 문제 일 수 있습니다. 소포스는이 문제를 정확히 일으키는 것으로 알려져 있습니다. – user2304916

답변

17

셀 옆의 별표 [*]은 셀이 현재 실행 중임을 나타냅니다. IPython은 각 노트북에 자체 커널을 제공하지만, 노트북 당 커널은 단지 입니다. 해당 커널이 코드 (셀 또는 일련의 셀)를 실행 중일 때 현재 수행중인 작업이 완료 될 때까지 추가 코드를 수락하거나 실행할 수 없습니다. 새로운 실행은 커널이 준비 될 때까지 대기열에 있습니다.

2+2을 실행 한 후에 충분히 오래 기다리면 이 결국이됩니다 (주 코드가 종료되었다고 가정).

이 문제에 대한 해결책은 코드와 결과를 얻기 위해 얼마나 오래 기다려야하는지에 따라 다릅니다. 일반적으로 다음과 같은 시도 :

  • 이 알고리즘을 테스트하기 위해 설정 한 작은 데이터를 사용하여, 다음 시간의 증가를 지적 최대 점차 확장 할 수 있습니다. 전체 데이터 세트로 실현할 수 있습니까?
  • 알고리즘이 디스크에 읽고 쓰고 있습니까? 그것을 피하거나 미리로드/포스트 저장 상태를 사용할 수 있습니까?
  • 데이터를 일괄 처리 할 수 ​​있습니까?
  • 알고리즘이 일괄 처리 가능한 경우 병렬 처리하여 CPU를 최대한 활용할 수 있습니까?

커널을 인터럽트 할 수 있지만 실행이 현재 커널의 손에서 벗어난 경우에는 작동하지 않습니다. 외부 C 모듈 (예 : numpy). 이러한 경우 완전히 다시 시작해야 할 수 있습니다.

관련 문제