Reducing the build time with parallel execution

I am trying to reduce the my pipeline execution time. By running multiple thread for a job using “parallel: 4” keyword. But with this my I can see that my job as 4 threads with name like 1/4 to 4/4, but the execution is not parallel, they executed sequentially, can someone help me understand why this is happening and any other way to reduce the build time by running things in parallel.

Do you have multiple runners and/or configured your runner’s concurrent setting to allow for parallel execution?
https://docs.gitlab.com/ee/ci/yaml/#use-your-own-runners

I don’t have multiple runners for now, but I was thinking of increasing the runner’s concurrent setting. I will try that and update you. Thanks for the quick response.

Can you please help me understand how the task is divided when we have multiple runners or higher concurrent setting. As my understanding was that not all tasks can be divided in small parallel jobs.

Also how does the resource allocation works, does increasing the runner or concurrent setting give more resource to the pipeline, or is it like the resource which were earlier used by the single runner will be divided among the multiple ones.