# Iris Scheduler
16 Feb 2022
## IRIS Questions
IRIS URLs
* https://iris-programming.readthedocs.io/en/latest/architecture.html#execution-model
* https://iris-programming.com/
1. write transition table for different scheduler states (AR: BJ, AY, SL)
* tasks satisfied?
* data satisfied?
* when does device selection complete?
1. Investigate other formalisms (AR: NM, MM)
1. STAR-PU formalisms?
1. Ompss formalisms?
1. Cilk formalisms?
1. Is there a check in place on data dependencies being created before going from `TASK_NONE -> TASK_QUEUED/TASK_SUBMITTED`?
1. Evaluate the pending data policy, does it transfer only the memory buffers associated with the task that's submitted or pick up all of them?
## HUNTER
### DAG Representation
```
Class DAG():
self.graph
"""
NX Graph Properties:
- Nodes must have 'size'
- Edge must have 'data' to represent data size.
"""
reset()
get_runtime(task, accelerator)
get_communication_time(task, from_accelerator, to_accelerator) # Still to be added
get_num_accelerators()
get_accelerators()
get_task_name()
get_kernel_name()
get_accelerator_name()
```
### Schedule Representation
```
class Schedule():
get_makespan()
get_schedule()
Returns array of schedule items
```
```
class ScheduleItem():
Task
Accelerator
Start
End
```