Hacker News new | ask | show | jobs
by jayd16 1938 days ago
I'm still waiting for a neural net progress bar as a service that pipes in all available device data, measurable progress and a task id and spits out a prediction based on previous runs across _all_ previous tasks.

Should eventually figure out what tasks are IO bound, what are CPU bound, what are fixed time, etc. as well as what device configurations effect that. Could also predict a service is down given enough scale...

4 comments

Inside this concept there is a Douglas Adams like short-history about a self-conscious progress bar.
I've thought about this so many times. I imagined a config file that listed stages with what resource they used most and how much of that resource it might take, like:

- Vendor: Foo Corp

- "Downloading files", Internet, 1000 MB

- "Extracting files", Disk, 2000 MB

- "Copying files into place", Disk, 4000 MB

- "Configuring", CPU, 100 seconds

The library would generate a progress bar that you'd update like:

- progress('Extracting files', 100), progress('Extracting files', 200), etc.

It would learn that 100MB of disk IO takes about this much time, and downloading 100MB from the Internet takes so long, and so forth. And the thing is, the estimates wouldn't even have to be particularly good as long as they were reasonably consistent for all of the same developer's projects. If CPU bound process #1 takes 10 seconds on the developer's laptop, and CPU bound process #2 takes 20 seconds, then the library could see how long the first takes on the user's hardware and then double it for the starting estimate of the second process.

I'd love so much for this to exist.

Edit: because of your comment I finally got around to writing this up at https://honeypot.net/post/smart-progress-bars/

Drawback: All that processing about how much to advance the progress bar under what circumstances on which hardware, etc. pp. takes so much CPU cycles that the actual task takes 3 times as long compared to a "stupid" progress bar.
I started implementing it last night, and the cost for a simple weighted average model was basically free.
How would that work exactly? Do you mean that you’d ship the monitoring code to all users in production, and it would monitor losing times, system attributes, etc. and phone home to your servers, where you’d use that to train a NN and ship that model back to all users?
The NN part is a bit tongue in cheek but yep, you got it. You could also just poll the cloud model without having to actually run it locally.
It's a somewhat silly idea, but actually what would really make it shine would be if the OS provided an api. You could give it some identification, and maybe a listing of tasks. That way it could pool learning data from all programs.
Yep, very silly...and yet...

If it wasn't clear, I completely agree that the data should be aggregated across all apps, all tasks.