Open myb513 opened 1 year ago
trace file 내 "{time}/t{throughput}\n" time 부분의 ptr를 옮겨가며, 비디오 청크 다운로드에 걸린 시간(delay)를 계산하는 방법을 사용하는 로직인데. mpc 코드만으로는 이 부분을 제어할 수 없습니다. 따라서 fixed_env_future_bandwidth.py 파일의 get_download_time 메소드를 새로 구현하는 게 방법일 듯 합니다.
mpc python file에서, lstm을 사용할 수 있도록 관련 module을 import하고, several trace file 들을 사전에 train한 모델을 load 할 겁니다. 관건은 get_download_time()이 호출될 때, "throught"을 trace file로부터 가져오는 방법을 변경하는 것입니다. Probably, "duration"은 기존에 사용하던 방법 그대로 두면 될 듯 합니다. 다만, throughtput에 대신 들어가는 값을 어떻게 계산해 내는지가 중요합니다.
이제, 파라미터로, 예측한 throughput 값을 추가하고, 이 값을 [self.cooked_bw[self.virtual_mahimahi_ptr] * B_IN_MB / BITS_IN_BYTE] 값 자리에 대체할 생각입니다. 이 때 실제 thp값과 얼마나 차이가 나는지는 로그로 기록해두고, 만약 오차가 serious하다고 판단되면, 오차를 조율하는 방법을 별도로 강구하겠습니다.
source code를 open해주신 hongzimao님께 너무나 감사드립니다. you so busy, so, 나는 따로 contact 하지 못합니다.
프로젝트 내 mpc_future_bandwidth.py 파일이 해결의 실마리가 될 듯 합니다. env 파일에서, get_download_time 로직 내 throughput 을 trace파일에서 직접 가져오지 않고,
lstm prediction으로 대체하면 가능할 것 같아요.