Would it be feasible to provide (or further) multi-core threading ability for programs that weren't originally designed for such?
And doing so by creating a "virtual" CPU core (or for i7's with hyperthreading, virtual "virtual cores") which, to a program, the program sees it as a single core/thread, but on the other side of this virtual core is a program/tool/utility that splits the work across multiple cores/threads on its own? And for those programs already designed for multi-core support, the virtual core enabling an increase in the number of cores usable.
I feel this would be useful given the trend in recent years of increasing core counts vs. overall CPU speed increases in lieu of CPUs running up against Moore's Law "ceiling," and the seemingly slow or trailing push in software development to take advantage of these growing number of CPU cores.
I realize something like this probably wouldn't be simple or easy to accomplish, but I'm mostly wondering if it would be feasible to do.