Hacker News new | ask | show | jobs
by tboughen 1464 days ago
I’m a teacher without a tech background. My role is to schedule a high school timetable.

To do this I have been given software that is single threaded and will only run a single instance, so I have taught myself Hyper-V, and run several VMs with alternative searches simultaneously. These searches can take 12+ hours to run.

The software also runs 25% faster when allocated 2 threads maximum than when 3+ are available…

5 comments

I have worked with senior software engineers that would never think to do this and do not have the skills to do it if they did. Impressive.
First of all, very impressive :) I AM a techie and I would never have come up with this solution, because I would have become obsessed with how the software knows it's running another instance and trying to hack that.

Second of all,

>These searches can take 12+ hours to run

WTF. What are these searches doing?

Thank you!

The searches are trying to allocate groups of teachers to time slots, subject to the inputted constraints e.g. their students aren’t elsewhere, changing rooms are available if needed, a teacher hasn’t been allocated a different class already etc.

But I can’t tell the software which constraints are hard, which are soft, and which have alternatives we are indifferent about. Hence the need for parallel searches!

This is basically traveling salesman type of problem called Constraint Programming. Plenty of library in this space if this interest you, like OR-Tools: https://developers.google.com/optimization
> >These searches can take 12+ hours to run

> WTF. What are these searches doing?

This is why you're a techie ;)

For a non-techie to pull that off is honestly impressive.

Kudos.

Love these solutions to a problem, well done :)
If the software is FEL, an open source time-tabling software, you can run the gui-less executable. I did it in Linux on a 30× core server, starting 30+ processes.

Edit: read the other answers. In FEL you can specify hard and soft constraints. Search can be long nonetheless...