Why would I want to do a "learn.fit(lr, 3, cycle_len=3)" instead of a "learn.fit(lr, cycle_len=1, cycle_mult=2)"?

I’m working on figuring out exactly what these arguments do. I thought cycle_mult would just change how many epochs are run so my guess was that it would be ((1 epoch * 1 cycle_length) * 2 cycle_mult), but that doesn’t appear to be how it works. I am currently doing a learner.fit(3e-3, 20, wds=1e-6, cycle_len=1, cycle_mult=2) which I thought would be 40 total epochs so I was letting it run overnight. Currently I’m still training at 441. Anybody have insight on the cycle_mult parameter?