points by westurner 6 years ago

From "Ask HN: What algorithms should I research to code a conference scheduling app" https://news.ycombinator.com/item?id=15267804 :

> Resource scheduling, CSP (Constraint Satisfaction programming)

CSP: https://en.wikipedia.org/wiki/Constraint_satisfaction_proble...

Scheduling (production processes):

https://en.wikipedia.org/wiki/Scheduling_(production_process...

Scheduling (computing):

https://en.wikipedia.org/wiki/Scheduling_(computing)

... To an OS, a process thread has a priority and sometimes a CPU affinity.

From http://markmail.org/search/?q=list%3Aorg.python.omaha+pysche... :

Pyschedule:

- Src: https://github.com/timnon/pyschedule </i>

From https://github.com/timnon/pyschedule :

> pyschedule is python package to compute resource-constrained task schedules. Some features are:

- precedence relations: e.g. task A should be done before task B

- resource requirements: e.g. task A can be done by resource X or Y

- resource capacities: e.g. resource X can only process a few tasks

Previous use-cases include:

- school timetables: assign teachers to classes

- beer brewing: assign equipment to brewing stages

- sport schedules: assign stadiums to games

</i>

... https://en.wikipedia.org/wiki/Slurm_Workload_Manager :

> Slurm is the workload manager on about 60% of the TOP500 supercomputers.[1]

Slurm uses a best fit algorithm based on Hilbert curve scheduling or fat tree network topology in order to optimize locality of task assignments on parallel computers.[2]</i>

... https://en.wikipedia.org/wiki/Hilbert_curve_scheduling :

> [...] the Hilbert curve scheduling method turns a multidimensional task allocation problem into a one-dimensional space filling problem using Hilbert curves, assigning related tasks to locations with higher levels of proximity.[1] Other space filling curves may also be used in various computing applications for similar purposes.[2]