Distributed Programming Models In Algorithm Definition