JMK no matter what

AOJ EC2 위에서 돌리기 성공

EC2 위에서 AOJ 섭미션들을 돌리겠다는 계획생각난 지 어느덧 3개월이 지나 오늘 처음으로 테스트 런을 돌려봤다. 그간 EC2 API 배운다고 삽질하고 액터 모델 짜겠다고 삽질하고 장문의 포스팅도 하고 하여간 그간 삽질 많았다.

이대로라면 1차 목표였던 파이썬-자바 포함해서 prod 에 붙이기를 이번 주말에 할 수 있을 것 같다. 만세로다. ㅠㅠ

돌아보니 대략적인 타임라인이 이랬다.

  • 1월 24일, 리비전 71: 프로젝트 전체 아웃라인. 초간단 액터 모델 구현과 각 액터들의 시나리오 작성.
  • 1월 31일, 리비전 80: ec2 핸들링 관련 코드 작성. 간단한 Judge arbitrator 구현.
  • 2월 9일, 리비전 93: ec2 인스턴스 어떻게 관리할 것인지 정책 정하기. 웹서버에서 채점 데이터 풀링해 오기 구현.
  • 3월 2일, 리비전 101: cpp, java, python 2.6 을 위한 컴파일과 실행 스크립트. 샘플 서브미션과 테스트 시나리오.
  • 3월 6일, 리비전 110: 쉬운 로컬 테스팅을 위한 로컬용 Judge & Submission Fetcher 구현 추가. EC2 사용하는 부분만 따로 상속해서 추가하는 방향으로 리팩토링.
  • 3월 13일, 리비전 113: 저지 구현. 테스트 C++ 서브미션 로컬에서 채점 성공.
  • 3월 14일, 리비전 116: 로컬용 로그 리포터 구현, 서브미션 상태 업데이트 구현, 런타임 에러 번역 (시스템 콜 실패나 시그널 값을 알아보기 쉬운 메시지로 바꿔주기) 통합
  • 3월 18일 새벽, 리비전 124: 추가 저지와 디폴트 저지의 구분을 없앰. 본격 EC2 통합 준비.
  • 3월 18일 밤, 리비전 129: 테스트 런 완료!

실제로 2월에 파이컨 갔다와서 쭉 논게 많이 티난다.... 하하하.. -_-;;; 기념으로 로그 덤프

2010-03-18 23:46:41,826 INFO Actor LogReporter is initializing
2010-03-18 23:46:41,827 INFO Actor LogReporter is running
2010-03-18 23:46:41,826 INFO Actor EC2JudgeArbitrator is initializing
2010-03-18 23:46:41,850 INFO Actor TestSubmissionFetcher is initializing
2010-03-18 23:46:41,850 INFO Scheduler is running
2010-03-18 23:46:41,851 INFO Actor TestSubmissionFetcher is running
2010-03-18 23:46:42,672 INFO Connected to EC2: 1 up instances found.
2010-03-18 23:46:43,327 INFO Scheduling expiration message after 3208 seconds.
2010-03-18 23:46:43,327 INFO Actor EC2Judge is initializing
2010-03-18 23:46:43,327 INFO Actor EC2JudgeArbitrator is running
2010-03-18 23:46:43,328 INFO Actor EC2Judge is running
2010-03-18 23:46:46,858 INFO Submission #1 received. Problem #100, Language cpp
2010-03-18 23:46:46,859 INFO EC2Judge [i-18c3d670] initializing..
2010-03-18 23:46:46,859 INFO Submission #2 received. Problem #100, Language py
2010-03-18 23:46:46,859 INFO Setting up instance server ec2-174-129-55-124.compute-1.amazonaws.com ..
2010-03-18 23:46:46,860 INFO Submission #3 received. Problem #100, Language cpp
2010-03-18 23:46:46,862 INFO Submission #4 received. Problem #100, Language py
2010-03-18 23:46:46,863 INFO Submission #5 received. Problem #100, Language cpp
2010-03-18 23:46:46,863 INFO Submission #6 received. Problem #100, Language java
2010-03-18 23:47:32,939 INFO Submission [1] status update to [COMPILING]
2010-03-18 23:47:36,447 INFO Submission [1] status update to [RUNNING]
2010-03-18 23:47:38,452 INFO Submission 1 summary: OK 0.2250 1004
2010-03-18 23:47:38,452 INFO Submission [1] status update to [OK] memory [1004.0] time [0.225]
2010-03-18 23:47:38,453 INFO Submission [1] status update to [JUDGING]
2010-03-18 23:47:39,957 INFO Submission 1 verdict: YES
2010-03-18 23:47:39,957 INFO Submission [1] status update to [ACCEPTED]
2010-03-18 23:47:41,462 INFO Finished judging submission 1.
2010-03-18 23:47:48,478 INFO Submission [2] status update to [COMPILING]
2010-03-18 23:47:50,484 INFO Submission [2] status update to [RUNNING]
2010-03-18 23:47:53,991 INFO Submission 2 summary: OK 1.4220 4012
2010-03-18 23:47:53,992 INFO Submission [2] status update to [OK] memory [4012.0] time [1.422]
2010-03-18 23:47:53,993 INFO Submission [2] status update to [JUDGING]
2010-03-18 23:48:00,502 INFO Submission 2 verdict: YES
2010-03-18 23:48:00,503 INFO Submission [2] status update to [ACCEPTED]
2010-03-18 23:48:02,508 INFO Finished judging submission 2.
2010-03-18 23:48:08,524 INFO Submission [3] status update to [COMPILING]
2010-03-18 23:48:11,030 INFO Submission [3] status update to [RUNNING]
2010-03-18 23:48:13,035 INFO Submission 3 summary: RTE Assertion failed: /home/controller/submissions/3/submission.cpp:17: t == 1234
2010-03-18 23:48:13,036 INFO Submission [3] status update to [RUNTIME_ERROR] message [RTE Assertion failed: /home/controller/submissions/3/submission.cpp:17: t == 1234]
2010-03-18 23:48:15,041 INFO Finished judging submission 3.
2010-03-18 23:48:24,060 INFO Submission [4] status update to [COMPILING]
2010-03-18 23:48:26,065 INFO Submission [4] status update to [RUNNING]
2010-03-18 23:48:30,073 INFO Submission 4 summary: TLE (elapsed 2014)
2010-03-18 23:48:30,074 INFO Submission [4] status update to [TIME_LIMIT_EXCEEDED] message [TLE (elapsed 2014)]
2010-03-18 23:48:31,578 INFO Finished judging submission 4.
2010-03-18 23:48:37,093 INFO Submission [5] status update to [COMPILING]
2010-03-18 23:48:39,099 INFO Submission [5] status update to [COMPILE_ERROR] message [/home/controller/submissions/5/submission.cpp: In function ‘int main()’:
/home/controller/submissions/5/submission.cpp:16: error: expected ;' before ‘for’ /home/controller/submissions/5/submission.cpp:16: error: expected;' before ‘)’ token
/home/controller/submissions/5/submission.cpp:38: error: expected `}' at end of input
/home/controller/submissions/5/submission.cpp:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result
]
2010-03-18 23:48:40,603 INFO Finished judging submission 5.
2010-03-18 23:48:47,124 INFO Submission [6] status update to [COMPILING]
2010-03-18 23:48:50,630 INFO Submission [6] status update to [RUNNING]
2010-03-18 23:48:53,636 INFO Submission 6 summary: OK 0.9310 21320
2010-03-18 23:48:53,638 INFO Submission [6] status update to [OK] memory [21320.0] time [0.931]
2010-03-18 23:48:53,638 INFO Submission [6] status update to [JUDGING]
2010-03-18 23:48:55,641 INFO Submission 6 verdict: YES
2010-03-18 23:48:55,642 INFO Submission [6] status update to [ACCEPTED]
2010-03-18 23:48:57,647 INFO Finished judging submission 6.

2010-03-19 13:49:08 | JM | /writings/cs/ | 0 개의 댓글들

댓글 남기기