Yes, there is a way, actually there is also a open-source processor emulator called QEMU, you can use it with the
-smp X argument:
QEMU is a generic and open source machine emulator and virtualizer.
When used as a machine emulator, QEMU can run OSes and programs made
for one machine (e.g. an ARM board) on a different machine (e.g. your
own PC). By using dynamic translation, it achieves very good
When used as a virtualizer, QEMU achieves near native performances by
executing the guest code directly on the host CPU. QEMU supports
virtualization when executing under the Xen hypervisor or using the
KVM kernel module in Linux. When using KVM, QEMU can virtualize x86,
server and embedded PowerPC, and S390 guests.
Also, if you want to know more about core emulation, read this article on section 2 - "the CPU Emulation Core" or even on this post on ServerFault.