A method of synchronizing parallel processes carried out in processing units connected by a network-on-chip, comprising the following steps: • distributing multiple program execution threads between processing units (PUO... PU3); • communicating between processing units by sending messages on the network-on-chip; and • configuring a synchronization register so that its content is overwritten only by bits that are set to 1 in words written in the synchronization register; • assigning a distinct bit position of the synchronization registers to each program thread; • when a current program thread in a current processing unit has reached a synchronization point, - writing by the current processing unit in the synchronization register a word in which the bit position assigned to the current program thread is set to 1, and - suspending the current program thread; and characterized in that each processing unit comprises a respective synchronization register , and the process comprises the following steps: • in the step of writing by the current processing unit, writing said word in all the synchronization registers by multicasting a message from the current processing unit to all the processing units, including the current processing unit itself; and • when all the bits assigned to the program threads are set to 1 in the synchronization register of a current processing unit, - resuming the execution of the suspended program threads in the current processing unit, and - resetting the synchronization register of the current processing unit. • distributing multiple program execution threads between processing units (PUO... PU3); • communicating between processing units by sending messages on the network-on-chip; and • configuring a synchronization register so that its content is overwritten only by bits that are set to 1 in words written in the synchronization register; • assigning a distinct bit position of the synchronization registers to each program thread; • when a current program thread in a current processing unit has reached a synchronization point, - writing by the current processing unit in the synchronization register a word in which the bit position assigned to the current program thread is set to 1, and - suspending the current program thread; and - writing by the current processing unit in the synchronization register a word in which the bit position assigned to the current program thread is set to 1, and - suspending the current program thread; and • in the step of writing by the current processing unit, writing said word in all the synchronization registers by multicasting a message from the current processing unit to all the processing units, including the current processing unit itself; and • when all the bits assigned to the program threads are set to 1 in the synchronization register of a current processing unit, - resuming the execution of the suspended program threads in the current processing unit, and - resetting the synchronization register of the current processing unit. - resuming the execution of the suspended program threads in the current processing unit, and - resetting the synchronization register of the current processing unit. <EOS>