Word for "order doesn't matter"

You have some data and some code that operates on it. The order in which you process each data element doesn't matter, and hence the task is parallelizable.

The order of computation on each element doesn't matter, or the computation is ____ (not parallelizable!)


We've got a lot of pseudo-synonyms here. For the heck of it, I'll try to relate them.

The term that describes the notion of unimportance of order is (unequivocally, in my mind) sequence-independence. A set of operations that are all orthogonal are (in other words) independent and therefore sequence-independent. A function over a sequence for which the order of the sequence is immaterial is commutative. If the function consists of a fold of another function of lower arity, then the latter must be associative. Sequence-independent operations are parallelizable and can therefore be run asynchronously. You can also say that the function has unspecified evaluation order, which implies unreliable evaluation order, which is something you really ought to document.


You could say that the computations are independent of each other.


I am throwing my weight against "Orthogonal". Wikipedia defines "orthogonality", in the Computer Science context, as:

Orthogonality guarantees that modifying the technical effect produced by a component of a system neither creates nor propagates side effects to other components of the system. The emergent behavior of a system consisting of components should be controlled strictly by formal definitions of its logic and not by side effects resulting from poor integration, i.e. non-orthogonal design of modules and interfaces. Orthogonality reduces testing and development time because it is easier to verify designs that neither cause side effects nor depend on them.

For example, a car has orthogonal components and controls (e.g. accelerating the vehicle does not influence anything else but the components involved exclusively with the acceleration function). On the other hand, a non-orthogonal design might have its steering influence its braking (e.g. electronic stability control), or its speed tweak its suspension.[2] Consequently, this usage is seen to be derived from the use of orthogonal in mathematics: One may project a vector onto a subspace by projecting it onto each member of a set of basis vectors separately and adding the projections if and only if the basis vectors are mutually orthogonal.


What about asynchronous?

In programming, asynchronous events are those occurring independently of the main program flow. Asynchronous actions are actions executed in a non-blocking scheme, allowing the main program flow to continue processing.


Are you looking for Associative?

From wikipedia:

In mathematics, associativity is a property of some binary operations. It means that, within an expression containing two or more occurrences in a row of the same associative operator, the order in which the operations are performed does not matter as long as the sequence of the operands is not changed.

This usually only relates to mathematics. However I don't know of a word that is more general besides Set.