The implementation of Reliability of Multicast under RLNC
There are two methods to calculate the reliability (Single and Multiprocess Method)
- Multi processor model
- Single processor model
Single processor model
for receivers less than 6 it's better to use the probabilityFunction method.
Multi processor Model
If you want to calculate more than 10 receivers it's better to use the Multiprocessor method. open the multiprocessor.py and change the configuration in the main section
if __name__ == "__main__":
# configuration
FIELD_SIZE = 2
NUMBER_OF_TOTAL_TRANSMISSION_SET = [[5,11,12], [6,10,14], [7,9,13], [8,15]]
NUMBER_OF_RECEIVERS = 6
NUMBER_OF_SYMBOLS = 5
ERROR_RATE = 0.1
PROCESS_NUMBER = [1,2,3,4]
if your CPU has less than 4 core change the number of the processors:
p1 = multiprocessing.Process(target=calculationSegment, args=(FIELD_SIZE, NUMBER_OF_TOTAL_TRANSMISSION_SET[0], NUMBER_OF_RECEIVERS,
NUMBER_OF_SYMBOLS, ERROR_RATE, PROCESS_NUMBER[0],))
p2 = multiprocessing.Process(target=calculationSegment, args=(FIELD_SIZE, NUMBER_OF_TOTAL_TRANSMISSION_SET[1], NUMBER_OF_RECEIVERS,
NUMBER_OF_SYMBOLS, ERROR_RATE, PROCESS_NUMBER[1],))
p3 = multiprocessing.Process(target=calculationSegment, args=(FIELD_SIZE, NUMBER_OF_TOTAL_TRANSMISSION_SET[2], NUMBER_OF_RECEIVERS,
NUMBER_OF_SYMBOLS, ERROR_RATE, PROCESS_NUMBER[2],))
p4 = multiprocessing.Process(target=calculationSegment, args=(FIELD_SIZE, NUMBER_OF_TOTAL_TRANSMISSION_SET[3], NUMBER_OF_RECEIVERS,
NUMBER_OF_SYMBOLS, ERROR_RATE, PROCESS_NUMBER[3],))