Thursday, January 7, 2010

ParaSail thread versus task

In ParaSail, there is a pervasive, implicit parallelism.  Because of that, it really doesn't make sense to talk about specific threads of control as there are potentially hundreds or thousands of them, appearing and disappearing all of the time.  Hence any notion of thread identity is probably inappropriate.  On the other hand, there might still be a reason to identify what might be called a logical thread of control, which would perhaps be reasonable to call a task, namely a logically separable unit of work.  Here it might make sense to have a well defined task identity, and an ability to set a priority, or a deadline, or some sort of resource limits (such as maximum space, or maximum number of simultaneous threads, etc.).

For example, one could imagine a multi-access server process, with a separate task spawned/assigned to handle a given request.  The number of threads involved in handling the request might be meaningless, but there clearly is a single well defined task to be performed, namely providing an appropriate response to the request.  The response time, resource utilization, etc. required to perform that task would be of interest.  The time or other resource spent in any single thread would not be particularly interesting.