편집 : 당신이 이것을 재현 할 수 있는지 여부를 확인하는 것이 유용 할 것입니다. 이 작업을 수행하려면 하나의 컴퓨터 만 있으면됩니다 (원격 연결이 필요 없음).Kernel-FrontEnd 통신의 이해 - 프런트 엔드가 고정 된 이유는 무엇입니까?
업데이트 다른 사람이 Mac이나 Win7에서이를 재현 할 수 없으므로 WinXP 또는 특정 컴퓨터에만 적용됩니다. 이 시점에서 나는 포기합니다.
프런트 엔드와 커널이 통신하는 방법에 대한 자습서가 있으면 원격 커널 문제를 디버그 할 수 있습니다. 그러한 일반적인 대답 (또는 다른 곳에서 자습서로 연결되는 링크)을 환영합니다. 나는 이미 Sascha Kratky의 Remote Kernel Strategies에 대해 알고 있습니다.
실용적인 질문 : 어떤 방식 으로든 원격 컴퓨터에 연결하면 (예 : 원격 커널 전략 사용) 프런트 엔드가 조만간 중단됩니다. 이 문제를 어떻게 방지 할 수 있습니까?
선택 -
새로운 커널 구성을 만듭니다 (> 커널 구성 옵션 ... 평가 메뉴) :
다음은 단일 시스템에 문제 (필요 없음 원격 연결)을 재현하는 방법 고급 옵션. MLOpen에
인수 : 커널을 실행하는
-LinkName "[email protected],[email protected]" -LinkMode Listen -LinkProtocol TCPIP -LinkHost "YOUR-IP-HERE" -LinkOptions MLDontInteract
(.. 명령 창에서
ipconfig
을 입력하여이를 얻을 수 있습니다 Windows에서 컴퓨터의 IP 주소YOUR-IP-HERE
교체)쉘 명령을 떠날 빈 (우리는 수동으로 할 것입니다)
새 노트북을 열고, 노트북의 커널을 방금 설정 한 것으로 설정하고, 뭔가 (
1+1
)를 평가하십시오.이제 연결 시간이 초과되기 전에 수동으로 커널을 시작해야합니다. 그래서 커맨드 라인 모드에서 새 커널 (
math
)를 시작하고 다음을 평가 :link=LinkConnect["8000,8001",LinkProtocol->"TCPIP"] (* connect to front end link *) $ParentLink = link; (* set the front end link as parent link *)
이제 연결이, 모든 것이 제대로 (작동 프론트 엔드의 분홍색 메시지 창에서 하나의 메시지를 저장 나타납니다)
Manipulate[n, {n, 0, 100, 1}]
을 평가하십시오. 첫째, 이것은 효과가있는 것처럼 보입니다. 이제 슬라이더를 가지고 노십시오. 조만간 프런트 엔드가 멈추어 죽을 필요가 있습니다. 나를 위해, 슬라이더를 10 초 동안 위아래로 드래그하면 항상 해제하지 않고도 충분합니다.
왜 프런트 엔드가 고정되어 있습니까? 프런트 엔드와 커널간에 TCPIP 모드 연결을 생성하여 모든 것이 올바르게 작동하는 방법은 무엇입니까?
일부 노트 : 나는 윈도우 XP에있어
- .
LinkProtocol -> "SharedMemory"
을 사용하면 문제가 발생하지 않습니다.- 평가 -> 평가 중단을 사용하여 계산을 중단하면 올바르게 작동합니다.
- 나는
Links[]
을 사용하여MathLink`$PreemptiveLink
과MathLink`$ServiceLink
이 생성되었고LinkConnectedQ[]
은True
을 반환하는 것으로 확인되었습니다.
다시 프런트 엔드는 Manipualate
슬라이더를 몇 초 동안 계속 드래그 한 후에 만 고정됩니다.
Link to same question on MathGroup.
관련 : Firewall settings for remote kernel to work (Mathematica)
클로저에게 : 이것은 유효한 프로그래밍 질문입니다. 커널에서부터의 연결은 프로그래밍 방식으로 (프런트 엔드, 다른 커널 또는 다른 소프트웨어로) 설정할 수 있습니다. 문제는 Mathematica의 통신 프로토콜을 이해하고 사용하는 것입니다. – Szabolcs
그래픽 메시지를 드래그 할 때 윈도우 메시지 루프가 일반적으로 마우스를 올릴 때까지 수정되어 요소 나 창을 드래그하여 부드럽게 처리합니다. 가능하면 이로 인해 컴퓨터 간의 동기화 메시지가 중단되어 시간 제한 조건이 발생합니다. – Motes
나는 Windows 7에서 이것을 시도했지만, 프론트 엔드와 커널이 여러 링크 ($ ParentLink 외)를 유지하고 있기 때문에이 메소드가 실패 할 것으로 예상했기 때문에 놀랍습니다. 서비스 링크와 선매 링크. 선제 연결이 올바르게 설정되지 않으면 Dynamic이 실패 할 것이라고 믿습니다. –