The idea is to prevent users from accidentally submitting same job file for the same workflow. Usually it is undesired to queue the same job twice. However in some corner cases, it might be necessary so we need a way to allow user force it.
The other point is that what makes it the same job. There are two options: 1) use a unique user-defined job name with semantic meanings to represent a unique piece of compute; 2) use content-driven checksum to represent unique piece of compute. Based on our experience, option 1 works well for our use cases.
The idea is to prevent users from accidentally submitting same job file for the same workflow. Usually it is undesired to queue the same job twice. However in some corner cases, it might be necessary so we need a way to allow user force it.
The other point is that what makes it the same job. There are two options: 1) use a unique user-defined job name with semantic meanings to represent a unique piece of compute; 2) use content-driven checksum to represent unique piece of compute. Based on our experience, option 1 works well for our use cases.