The amount of memory required to align a pair of sequences scales like the product of the sequence lengths. In the worst case, approximately 4NM bytes may be needed, where N and M are the sequence lengths. For very long sequences, say 20k or more, this can be a lot: 4 x 20k x 20k = 1.6 Gb.
If multi-threading is used, then each thread may be
doing its own alignment, so the worst-case memory requirement scales like 4NMt
where t is the number of threads.