It depends on what your workload is. Seti@home, for instance, is not multithreaded. However, you can run 2 instances of the application and do work on multiple workloads at the same time. This would be the ideal workload for SMP setups. From that point on, you'd have to look at the dataset size (will it fit into the cache of the CPU?). In Opteron's case, since each CPU has its own dedicated memory pocket, this isn't an issue if the OS is NUMA-aware and the dataset does no or very little I/O. Theoretically, this should mean that in a perfect situation, a dual-Opteron setup should provide 2x the performance of a single Opteron of the same frequency. Of course, that situation is nowhere near reached. Anand's database and transaction server software test showed a 33% SMP scaling (that is, going to dual from a single setup with Opteron brought about a 33% improvement in performance).
"We are Microsoft, resistance is futile." - Bill Gates, 2015.