1. A system for performing efficient conditional memory ordering in a multi-processor computer system, the system comprising: a plurality of processors comprising at least a first processor and a second processor; a shared memory coupled to the at least first processor and the second processor; a current release number for the first processor coupled to the shared memory, the current release number comprising: a processor identifier associated of the first processor; and a release counter used to enforce proper ordering of memory instructions, said release counter representing progress of a second processor at a time when the second processor last accessed the shared memory, and wherein the progress is measured by a number of synchronization operations performed by said second processor; a release number vector stored in each processor, said release number vector comprising current release numbers of all processor in the system; and a conditional memory ordering instruction implemented by one of the plurality of processors, the instruction executing locally on the one of the processors using one release number of the release vector by executing instructions comprising: providing read access to the current release number for the first processor; and determining whether the processor identifier of the one release number of the processor using the register is associated with the first processor.