From: Paul H. Hargrove (PHHargrove_at_lbl_dot_gov)
Date: Thu Apr 16 2009 - 12:32:18 PDT
Nikita, See some answers below. -Paul Nikita Andreev wrote: > Hello. > > I have two question related to barriers. > > 1. upc_fence ensures that all shared references issued before the > fence are completed before any following are issued. How is it > actually implemented? Does it work like a barrier or application can > continue to execute statements which are not related to shared references? A upc_fence() will stall execution of statements in the calling thread until completion of all shared references made by the calling thread. A upc_fence() does not have any specified affect on execution of statements in other threads, nor does it connect local execution to the state of shared references made by other threads. So, a fence is quite different from a barrier which stalls all threads at the wait until all threads have executed the notify. > > 2. In GASP split-phase barrier consists of two events: GASP_UPC_NOTIFY > and GASP_UPC_WAIT. How does upc_fence and ordinary barrier appears in > trace? There are GASP_UPC_BARRIER and GASP_UPC_FENCE but it turns out > that same GASP_UPC_NOTIFY and GASP_UPC_WAIT are being used. This I am not sure about. I would expect that the fence should NOT be generating the NOTIFY and WAIT GASP events. If you have a simple example that you are sure is not seeing the GASP events implicit final barrier, please share it and we can take a look at it. > > Regards, > Nikita Andreev. -- Paul H. Hargrove PHHargrove_at_lbl_dot_gov Future Technologies Group HPC Research Department Tel: +1-510-495-2352 Lawrence Berkeley National Laboratory Fax: +1-510-486-6900