4 ms·
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
by tboughen 4y 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…
- noir_lord 4y agoFor a non-techie to pull that off is honestly impressive. Kudos.
- jugg1es 4y agoI 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.
- xmonkee 4y agoFirst 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?
- _joel 4y ago> >These searches can take 12+ hours to run > WTF. What are these searches doing? This is why you're a techie ;)
- tboughen 4y agoThank 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!
- neurostimulant 4y agoThis 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 https://developers.google.com/optimization
- _joel 4y agoLove these solutions to a problem, well done :)
- mercurialuser 4y agoIf 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...