Measure a real offloading decision with your own laptop/phone hotspot and a remote machine (a lab server, a campus VM, or a free-tier cloud VM).
- Write a small HTTP service (Python Flask/FastAPI or Java) that receives an image (or a byte array) and runs a CPU-heavy function on it (e.g., a blur filter repeated N times, or a small ML model). Write a client that runs the same function locally.
- Measure: local execution time; RTT (
ping), upload bandwidth (iperf3or timing the upload), remote compute time (server-side timer) and total remote time — for at least three input sizes and two network conditions (e.g., good Wi-Fi vs. a phone hotspot, or throttled withtcon Linux). - Fit the model T_remote = D/R + C/f_s + RTT to your data. How well does it predict the measured times? What is missing (TCP slow start, serialization, server queueing)?
- Compute the break-even bandwidth for each input size and verify it experimentally.
- Write a conclusion: for which input sizes and networks should your client offload? How would you make the client decide automatically at run time?