일괄 작업 문제 해결

살펴보기

이 가이드에서는 Rescale 플랫폼에서 일괄 작업을 실행하는 사용자가 직면하는 몇 가지 일반적인 오류 원인을 보여줍니다. 이러한 오류 중 일부를 진단하는 방법을 보여 드리겠습니다. 또한 이를 방지하고 수정하는 방법에 대해서도 논의하겠습니다.

작업현황 페이지

  • 작업의 출력 검토 Status 페이지
    • 간트 차트에서 작업 내역을 확인하세요.

    • 명령이 올바르게 전달됩니까? 확인 단계 (입력 유효성 검사) 녹색 체크가 있나요?
      직위
      에 오류 메시지가 있습니까? 작업 로그 부분?
    • 플랫폼 오류

      에 오류 메시지가 있습니까? 작업 로그 부분?

      플랫폼 오류

결과 페이지

결과 페이지 파일

process_output.log

우리가 항상 제안하는 첫 번째 단계 모든 직업, 성공 여부는 다음을 검토하는 것입니다. process_output.log 파일. 이 파일은 실행 중인 소프트웨어 분석 방법의 표준 출력을 기록합니다. 또한 잠재적인 오류 메시지도 기록됩니다.

  • 를 찾으려면 process_output.log 파일 작업으로 이동 결과 페이지
  • 검색창에 파일을 검색하세요
    • 보통 log or process 충분한 검색어입니다
  • 보기 process_output.log 화면 아이콘을 사용하여 파일을 행위 칼럼
    • 로그 뷰어파일이 너무 큰 경우 텍스트 편집기에서 보기 전에 먼저 파일을 다운로드해야 할 수도 있습니다.
  • 이 로그 파일을 주의 깊게 검토하고 경고 또는 오류 메시지를 찾으십시오.
    • 대부분의 경우, 여기서 오류를 확인할 수 있습니다 Process_output.log

종료 코드

찾아야 할 핵심 필드 중 하나는 끝 부분에 있는 "종료 코드"입니다. process_output.log 파일. 분석 방법이 원활하게 실행되고 오류 메시지를 게시하지 않고 깔끔하게 종료되면 다음이 생성되어야 합니다.

코드 0으로 종료

작업은 다음으로 완료될 수 있습니다. code 0, 이는 단순히 프로세스가 오류 없이 실행되었음을 의미합니다. 이것은 물론이다 보장하지 않는다 작업이 의도한 대로 실행되었다는 것입니다. 프로그램에서 명시적인 시스템 오류(예: 메모리 부족, core 덤프, 디스크 공간 부족 등), 프로세스는 XNUMX이 아닌 종료 코드를 생성합니다. 발생할 수 있는 일반적인 종료 코드:

종료 코드의미
1일반적인 오류에 대한 캐치홀
2쉘 내장 기능의 오용
126호출된 명령을 실행할 수 없습니다.
127명령어를 찾을수 없음
128종료할 인수가 잘못되었습니다.
128+n치명적인 오류 신호 “n”
130Ctrl-C에 의해 종료된 스크립트
137프로세스의 명시적인 종료 또는 메모리 부족을 포함하여 결정되지 않은 종료 모드
255 *종료 상태가 범위를 벗어났습니다.

물론 이러한 오류 코드는 가장 유익하지는 않지만 디버깅을 위한 시작점을 제공합니다.

기본 디버깅 단계

오류 메커니즘은 매우 다양하지만 가장 일반적인 문제 중 일부와 이를 진단하고 방지하는 단계는 아래에 나열되어 있습니다.

입력 파일 누락

  • 필요한 모든 파일이 개별적으로 또는 압축된(zip, tarball 등) 입력 파일 데크에 작업에 포함되어 있는지 확인하십시오.

잘못된 파일 경로

  • 압축된 입력 파일 데크가 적절한 디렉터리 경로로 확장되는지 확인하세요.
  • 스크립트, 입력 파일 및 기타 작업 정의에서 상대 파일 경로를 사용합니다.
  • Rescale이 소프트웨어를 실행합니다. 명령(들)에 표시된 소프트웨어 설정 압축 파일이 풀릴 동일한 작업 디렉토리의 페이지
    • Rescale 플랫폼은 준비된 입력 파일이 최상위 디렉토리 수준에 패키지되어 있다고 가정합니다.
    • zip/tar/etc 명령이 실행될 디렉터리 수준의 입력 파일
    • 또는 케이스 하위 디렉터리가 사용되는 경우(예: run01_configB), 분석 소프트웨어 명령 앞에 다음과 같이 디렉토리를 적절하게 변경했는지 확인하십시오. cd run01_configB && run_analysis
      • 이는 Rescale 플랫폼에서 선호하는 작업 흐름이 아닙니다.

공통 파일 시스템에 대한 액세스가 필요한 다중 노드 작업

헤드 프로세스가 파일 I/O 및 작업자 프로세스와의 통신을 처리하는 대부분의 분석 방법의 경우 Rescale은 기본적으로 사용자가 지정한 입력 파일을 ~/work. 그러나 일부 방법에서는 공유 파일 시스템에 대한 액세스도 필요한 노드에서 작업자 프로세스를 시작합니다.

  • Rescale 플랫폼에서는 ~/work/shared 디렉터리는 작업의 모든 컴퓨팅 노드에 NFS로 마운트됩니다.
    • Rescale은 이러한 분석 방법의 대부분을 식별했으며 기본적으로 작업을 시작합니다. ~/work/shared 예배 규칙서
    • 그러나 런타임 사용자 정의 또는 옵션으로 인해 노드에서 실행되는 작업자 프로세스에 입력 파일에 대한 액세스, 런타임 라이브러리 로드 또는 출력 파일 작성이 필요한 경우가 있습니다.
  • XNUMXD덴탈의 명령 를 시청하여 이에 대해 더 많은 정보를 얻을 수 있습니다. 소프트웨어 설정 페이지 앞에는 움직임디렉토리 변경 명령 :
mv * 공유
cd 공유
<실행_분석>

입력 파일을 읽는 중 오류가 발생했습니다.

  • 분석 소프트웨어에서 예상한 대로 입력 파일이 올바르게 구성되었는지 확인하세요.
  • 적절한 소프트웨어인지 확인하십시오. 버전 "소프트웨어 설정" 드롭다운 페이지에서 선택됨
  • 텍스트 입력 파일이 올바른 형식인지 확인하십시오.
    • 배치 컴퓨팅 노드는 일반적으로 Linux 시스템입니다. 사용하는 텍스트 편집기의 유형에 따라 줄 끝/파일 끝 문자가 다르게 인코딩되는 경우가 있습니다.
    • Windows 텍스트 편집기를 사용하면 다음과 같은 파일이 생성되는 경우가 많습니다. ^M Linux에서 사용하지 않는 개행 문자
      • VI/VIM과 같은 텍스트 편집기를 사용하여 이를 바꾸려면 다음 명령으로 해당 문자를 바꿀 수 있습니다. :%s/^M$//
      • 참고 : ^M 로 입력 ctrl-Vctrl-M

분석 방법에서 다른 로그 파일을 검사합니다.

  • Rescale 플랫폼은 표준 출력 메시지를 출력합니다. process_output.log, 일부 분석 방법은 중요한 정보를 다른 로그 파일에 인쇄합니다.

  • 이러한 출력 파일은 일반적으로 'log', 'out', 'live' 또는 'dat'의 파일 확장자를 갖지만 분석 방법에 따라 달라질 수 있습니다. 소프트웨어 공급업체의 설명서를 참조하세요.

  • 작업 로그
  • 이러한 로그 파일은 일반적으로 ASCII 텍스트 파일이므로 파일 이름 옆 오른쪽 열에 있는 작은 화면 아이콘을 사용하여 볼 수 있습니다.

    • 와 같이 process_output.log 파일이 너무 크면 로컬로 다운로드하세요. 워크 스테이션 텍스트 편집기를 사용하여 확인하세요.

누락된 라이브러리 파일

  • 프로세스에 작업에 사용되는 사용자 정의 라이브러리 파일에 대한 적절한 액세스 및 경로 정의가 있는지 확인하십시오.
  • Rescale 지원팀은 귀하의 애플리케이션에 대한 추가 라이브러리를 설치해야 할 수도 있습니다.

시스템 리소스 부족

  • 확인하십시오 시뮬레이션 프로세스에는 런타임 동안 충분한 물리적 메모리와 저장 공간이 있습니다.
    • 일부 코드는 분석에 따라 런타임 중에 메모리 공간 크기를 변경하므로 시작 시 충분한 메모리가 유지되지 않을 수 있습니다.
    • 일부 코드는 또한 최종 출력 파일보다 저장소 공간을 부풀릴 수 있는 대량의 스크래치 데이터 파일을 생성합니다.
  • 자세한 내용은 “클러스터 상태” 작업 하단에 Status 여유 메모리 및 디스크 공간을 모니터하는 페이지
  • 메시/시뮬레이션의 크기를 줄여 작업이 성공적으로 실행될 수 있는지 확인하세요.
  • 더 많은 코어 및/또는 노드에서 실행
  • 더 많은 물리적 메모리 또는 스토리지를 갖춘 특수 코어 유형을 선택하세요.

적절한 라이센스 액세스

  • 라이센스 설정이 소프트웨어 설정 페이지가 올바르게 정의되었습니다. 일반적으로 이는 port@hostname 형식입니다.
  • process_output.log에서 볼 수 있듯이 라이센스 파일의 기능을 체크아웃하고 있는지 확인하세요.
    • 실행하려는 명령에 기능이 사용되었는지 확인하는 올바른 옵션이 있는지 확인하세요.
      라이선스 상태
  • 귀하가 귀하의 라이센스에 대한 책임이 있는 사람인 경우 섬기는 사람:
    • 라이센스가 만료되지 않았는지 확인하세요
    • 라이센스 서버가 작동 중이고 네트워크에 액세스할 수 있는지 확인하세요.
    • 당사의 가이드를 참조하세요. SSH 터널링IP 포워딩 자세한 내용은.

워크플로 디버깅

  • 프로덕션 규모의 실행을 시작하기 전에 워크플로를 연습하는 작은 테스트 사례를 설정하세요.
  • 사전 및 사후 처리 단계가 분석 옵션 > 명령
  • 대화형으로 테스트 작업 실행
    • 기존 교체 명령sleep 3600
    • ssh 계산 속으로 노드 일단 시작되면
    • 분석 방법에 적합한 디렉토리로 변경합니다(~/work or ~/work/shared)
    • 작업을 대화형으로 시작하려고 시도합니다.
    • 성공적인 결과를 생성하는 모든 명령을 기록하십시오.
    • 당신의 수정 명령(들) 그에 따라
      • XNUMXD덴탈의 명령 입력 창에서는 줄 바꿈을 허용합니다. ; or && 별도의 명령을 표시
      • 참고: 명령은 다음으로 구분됩니다. && 이전 작업이 완료되는 경우에만 실행됩니다. code 0, 다음 사람들은 ; 항상 이전 이후에 실행됩니다.

이러한 일반적인 디버깅 단계로 여전히 문제가 해결되지 않으면 다음 담당자에게 연락하여 작업을 공유하십시오. 크기 조정 지원.