Building software that exploits multiple cores can be extremely complicated and often does not increase performance significantly. Multiple cores, threads and processes are some of the most misunderstood computer concepts. Someone thinking that doubling the number of cores should double performance is in most cases completely inaccurate.
I've written software for the transportation industry and have effectively designed applications using a single process and several dozen threads. Threads were chosen in this case so as not to lose any real time data. For example, 1 thread read and processed GPS data while 1 thread read and processed ECM data and another thread handle m2m cellular communication and another satellite communication. There was some parallel processing that could have benefited by multiple cores - but not much.
Please note that cores have to share memory, share disk access etc. So even the effort of backing up the skp to disk would require most if not all of the cores to synchronizing prior to writing the file so that the application could be completely sure that it was in a known state at the time it flushed to disk. Seems like a lot of extra work for very little gain.
If you can completely isolate a number of tasks as completely independent then those tasks can be processed in parallel and run on separate cores.
An example would be an application that visually compares different sorting algorithms. A copy of the same list of data could be sorted using sorts such as, 1)bubble sort, 2) insertion sort, 3) merge sort, 4) bucket sort, 5) heap sort, 6) quick sort
You could perform the sorts sequentially but the effect wouldn't be all that interesting. So run them in their own threads and start them up. What you would see is the fastest 6) quick sort would finish first and the rest would follow. Now the effect is visual.
Some of the rendering programs that use ray tracing can very effectively divide tasks across multiple cores.