Few things to add from doing this probably 50+ times across different presses.
The granite plate method toolndye_dave described is great for static checks. But here's the thing — static parallelism and dynamic parallelism can be very different on a servo press, and it's the dynamic number that determines your part quality.
Why they differ: under forming load, the press frame deflects. On a C-frame press, the throat opens up and the slide tilts backward. On a straight-side press, the columns stretch and the crown deflects. The amount of deflection depends on where the load is applied relative to the press centerline.
How to check dynamic parallelism cheaply: make four identical test slugs from the same material (we use 25mm diameter, 2mm thick mild steel). Place them at the four measurement points on a flat die. Run the press at your working tonnage and measure the slug thickness after pressing. The thickness variation tells you your dynamic parallelism under load. Cost: basically zero.
Thermal parallelism drift is the sneaky one. We track parallelism at startup, after 1 hour, and after 4 hours of continuous running. On our 500T Aida, the left-rear corner drops 0.015mm after 4 hours because the left gib runs hotter (it's closer to the motor). Not enough to cause problems on most parts, but on a tight-tolerance connector stamping job with 0.02mm total tolerance, that drift eats 75% of your budget.
Our fix: we added a 15-minute warm-up cycle at the start of each shift — run the press at production speed with no die for 15 minutes. The thermal gradient stabilizes and parallelism settles to its steady-state value before we load the die. Cheap insurance.
One more tip: document your parallelism numbers and date them. Plot them over time. A gradual trend tells you gib wear is progressing and you can plan the replacement. A sudden change means something broke or shifted — investigate immediately.