## 4 The Proposed Algorithm
### Enhanced Partitioning Algorithm in Homogeneous Phase  
As shown in Figure 3, there are only two genome datasets involved in the sequence alignment procedure. \(S\) represents a short-read dataset and \(G\) represents a long genome reference. \(S_{x}\) is the individual dataset of short reads at node \(x\). \(S_{xy}\) corresponds to a particular block in short read \(S_{x}\) and \(s\) is the total amount of blocks of \(S_{x}\). \(G_{x}\) is the responding genome reference at node \(x\). \(G_{xy}\) corresponds to a particular replica of the genome reference of \(G_{x}\) and \(g\) is the number of replicas of \(G_{x}\). Therefore, short-read subsets in node \(x\) can be referred to as \(S_{x1},S_{x2},\ldots,S_{xy},\ldots,S_{xs}\) and genome reference replicas in node \(x\) are referred to as \(G_{x1},G_{x2},\ldots,G_{xy},\ldots,G_{xg}\) in Figure 3. Within the sequence alignment procedure, three pivotal steps can be identified: establishing, mapping, and gathering. These steps are summarized as follows. 1. Establishing stage: The aligner builds the index file for the genome reference \(G_{xy}\); the wall time of this stage is denoted as \(T(G_{xy})\). 2. Mapping stage: The aligner achieves an alignment sub-result \(R_{xy}=map\big{(}S_{xy},G_{xy}\big{)}\) by mapping short read \(S_{xy}\) against genome reference \(G_{xy}\); the wall time of this stage is denoted as \(T(R_{xy})\). 3. Gathering stage: The aligner collects sub-results from stage 2 and takes some necessary configurations to merge the final output \(R=\sum R_{xy}\); the wall time of this stage is denoted as \(T(R)\). The majority of the total time in the sequence alignment is typically allocated to the establishing and mapping stages. It is noteworthy that the mapping stage necessitates a substantial allocation of computational resources and entails the most significant computing resource. The generation and dissemination of the index file can be performed in advance and shared among multiple instances during the experiments. Thus, the overall execution time of the three stages, denoted as \(T=T(G_{xy})+\sum T(R_{xy})+T(R)\), can be simplified to \(T=\sum T(R_{xy})\) in general scenarios. A range of \(s\) and \(g\) values is taken into consideration for a comprehensive view, which is detailed further in the following section. Figure 3: The brief workflow of sequence alignment. 1. Case 1: \(s=g=1\). This case discusses the native implementation of the original structure of a sequence aligner built for mapping complete reads to a single genome reference. 2. Case 2: \(s=1\), \(g>1\). This case is utilized for the purpose of conducting the alignment of complete reads that are shared, against a set of \(g\) replicates of the reference genome. The use of many replicas of the genetic reference inside a NUMA architecture system offers benefits in terms of system architecture, as this design incorporates a large number of memory blocks. 3. Case 3: \(s=1\), \(0<g<1\). This case involves mapping the complete reads to a subsequence of the genome reference, specifically \(1/g\) of the reference sequence. The genome reference is partitioned into \(1/g\) segments, which are separately aligned with the whole set of read data. 4. Case 4: \(s>1\), \(g=1\). This case is implemented by dividing the reads into \(s\) subsets, which are mapped against a complete replica of the genome reference. The dataset is partitioned into \(s\) segments, and a complete genome reference is distributed across the threads residing in the memory. 5. Case 5: \(s>1\), \(g>1\). This case is implemented with \(s\) subsets of reads being mapped to \(g\) replicates of the genome reference. The short read and genome reference are divided or duplicated into \(s\) segments and \(g\) duplicates, respectively. A partitioned subread can be regarded as a genome reference that has been repeated, resulting in the equation \(s=g\). Thus, this case is suitable for large memory systems. 6. Case 6: \(s>1\), \(0<g<1\).