As I mention in the article async only works if you have IO bound tasks. But
assuming that your tasks are IO bound you can await multiple executions with
`and` or `all` from the
[`asyncfutures`](https://nim-lang.org/docs/asyncfutures.html#and%2CFuture%5BT%5D%2CFuture%5BY%5D)
module (which is automatically imported from `asyncdispatch`). If your tasks
are CPU bound then you simply can't use async to speed up your execution, as
the CPU will still have to do all the work. For that you need multithreading,
which will be the topic of the next article in the series.