This paper studies the power of non-restricted preprocessing on a
communication graph $G$, in a synchronous, reliable system.
In our scenario, arbitrary preprocessing can be performed on $G$, after
which a sequence of labeling problems have to be solved on different
subgraphs of $G$.
We suggest a preprocessing that produces an orientation of $G$.
The goal is to exploit this preprocessing for minimizing the radius
of the neighborhood around each vertex from which data has to be
collected in order to determine a label. We define a set of
labeling problems for which this can be done.
The time complexity of labeling a subgraph depends on the topology of the
graph $G$ and is always less than $\min\{\chi(G), O((\log n)^{2})\}$.
On the other hand, we show the existence of a graph for which even
unbounded preprocessing does not allow fast solution
of a simple labeling problem. Specifically, it is shown that
a processor needs to know its $\Omega(\log n / \log \log n)$-neighborhood
in order to pick a label.
Finally, we derive some results for the resource allocation problem.
In particular, we show that $\Omega(\log n / \log \log n)$
communication rounds are needed if resources are to be fully utilized.
In this context, we define the {\em compact coloring} problem, for which
the orientation preprocessing provides fast distributed labeling algorithm.
This algorithm suggests efficient solution for the resource allocation
problem.