Skip to content
Snippets Groups Projects
Verified Commit b2c6fa67 authored by Laurent Modolo's avatar Laurent Modolo
Browse files

update computation of the number of processes for each part of the algo (read/write/process)

parent e4db61bc
No related branches found
No related tags found
No related merge requests found
...@@ -17,9 +17,10 @@ def partitionning(num_processes): ...@@ -17,9 +17,10 @@ def partitionning(num_processes):
""" """
Partition the number of threads for writing and fragmenting. Partition the number of threads for writing and fragmenting.
""" """
write_processes = num_processes // 4 read_processes = max(int(num_processes / 3), 2)
compute_processes = num_processes - (write_processes * 2) write_processes = read_processes
return write_processes, compute_processes compute_processes = max(num_processes - (write_processes * 2), 1)
return read_processes, write_processes, compute_processes
def check_data(data): def check_data(data):
for element in data[0]: for element in data[0]:
......
...@@ -189,7 +189,7 @@ def cut(args, logging): ...@@ -189,7 +189,7 @@ def cut(args, logging):
input_queue = Queue() input_queue = Queue()
output_queue = Queue() output_queue = Queue()
write_processes, compute_processes = partitionning(num_threads) read_processes, write_processes, compute_processes = partitionning(num_threads)
# communicate(write_processes=write_processes, compute_processes=compute_processes) # communicate(write_processes=write_processes, compute_processes=compute_processes)
manager = ProcessManager() manager = ProcessManager()
...@@ -199,13 +199,13 @@ def cut(args, logging): ...@@ -199,13 +199,13 @@ def cut(args, logging):
try: try:
# Start worker processes # Start worker processes
manager.start_worker(target=read_bam_pair, args=(bam_for_file, bam_rev_file, input_queue, compute_processes)) manager.start_worker(target=read_bam_pair, args=(bam_for_file, bam_rev_file, input_queue, read_processes))
# Process for processing items # Process for processing items
[ [
manager.start_worker(target=process_items, args=(input_queue, output_queue, seed_size, len_add)) for _ in range(compute_processes) manager.start_worker(target=process_items, args=(input_queue, output_queue, seed_size, len_add)) for _ in range(compute_processes)
] ]
# Process for writing pairs # Process for writing pairs
manager.start_worker(target=write_fastq_pair, args=(output_queue, output_forward, output_reverse, compute_processes)) manager.start_worker(target=write_fastq_pair, args=(output_queue, output_forward, output_reverse, write_processes))
# Monitor processes # Monitor processes
while manager.running(): while manager.running():
if not manager.check_processes(): if not manager.check_processes():
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment