How would I give my CI runners more cores and RAM if the applications I'm testing require it?

I’ve come across projects in the past that either require a certain number of CPU cores and RAM for applications to run. How would I be able to define my CI runners to use more resources and is there a way to limit the number of runners or resources for all my runners so I don’t run out of resources? I know the runners use Docker on the backend. Would I need to create my own runners to satisfy these kinds of issues? Thanks!