From f43646b4145af6cd8c6ea718be895ecbca77d271 Mon Sep 17 00:00:00 2001 From: Denny Date: Fri, 9 Feb 2024 14:34:49 +0530 Subject: [PATCH] feat: add poc multiprocess test --- src/api/Dockerfile.vid_vec_rep_resnet | 6 ++++- src/api/video_vec_operator_multicore.py | 33 +++++++++++++++++++++++++ src/api/video_vec_operator_multicore.sh | 2 ++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 src/api/video_vec_operator_multicore.py create mode 100644 src/api/video_vec_operator_multicore.sh diff --git a/src/api/Dockerfile.vid_vec_rep_resnet b/src/api/Dockerfile.vid_vec_rep_resnet index 625cb376..8c3c6586 100644 --- a/src/api/Dockerfile.vid_vec_rep_resnet +++ b/src/api/Dockerfile.vid_vec_rep_resnet @@ -1,4 +1,4 @@ -FROM python:3.11-slim-bullseye AS base +FROM python:3.11-slim@sha256:637774748f62b832dc11e7b286e48cd716727ed04b45a0322776c01bc526afc3 AS base RUN apt-get update \ && apt-get -y upgrade \ && apt-get install -y \ @@ -56,6 +56,10 @@ COPY ./video_vec_operator_profile_pyinstrument.sh /app/video_vec_operator_profil RUN chmod +x video_vec_operator_profile_memray.sh RUN chmod +x video_vec_operator_profile_pyinstrument.sh +COPY ./video_vec_operator_multicore.py /app/video_vec_operator_multicore.py +COPY ./video_vec_operator_multicore.sh /app/video_vec_operator_multicore.sh +RUN chmod +x video_vec_operator_multicore.sh + COPY ./benchmark.sh /app/benchmark.sh RUN chmod +x benchmark.sh diff --git a/src/api/video_vec_operator_multicore.py b/src/api/video_vec_operator_multicore.py new file mode 100644 index 00000000..47a49515 --- /dev/null +++ b/src/api/video_vec_operator_multicore.py @@ -0,0 +1,33 @@ +from multiprocessing import Process +from multiprocessing import cpu_count +from core.operators import vid_vec_rep_resnet +import time + + +def find_time(): + file_path = {"path": r"core/operators/sample_data/sample-cat-video.mp4"} + start_time = time.time() + vid_vec_rep_resnet.run(file_path) + end_time = time.time() + duration = end_time - start_time + print(f"Time taken - {duration}") + print("Video vec time profile complete!") + + +N = 1 +total_cores = cpu_count() + +print("number of cpus: ", cpu_count()) +print("distribute test on", int(total_cores / N), "cores") + +processes = [] + +vid_vec_rep_resnet.initialize(param=None) + +for core in range(int(total_cores / N)): + proc = Process(target=find_time) + processes.append(proc) + proc.start() + +for proc in processes: + proc.join() diff --git a/src/api/video_vec_operator_multicore.sh b/src/api/video_vec_operator_multicore.sh new file mode 100644 index 00000000..731796a3 --- /dev/null +++ b/src/api/video_vec_operator_multicore.sh @@ -0,0 +1,2 @@ +python video_vec_operator_multicore.py > output_multicore.txt +tail -f /dev/null \ No newline at end of file