In computer science, if a particular algorithm produces the same result for the same input than it is said to be deterministic. And if the algorithm produces different results for the same input than it is said to be non-deterministic. In both cases the algorithm, can run on a deterministic or non-deterministic machine. And this would depend on how the machine executes these algorithms. A concurrent algorithm is non-deterministic as the execution depends on the semaphore.
In physics, if a system is represented by a set of differential equations than it is said to be deterministic. Complex systems and processes can be broken down in into smaller entities, whose behaviour can be predicted in a better way. This can be applied to understanding businesses and balance sheets. Conversely, complex systems can be build up using simpler and more deterministic systems.