CPU Mining: Optimal Number of Threads
One instance of minerd is all you're going to need. The application also synchronizes with the pool. So opening more than 1 instance of minerd is just going to cause your network to be used twice for the same information. Also, the operating system has some overhead for running the application. Opening another instance will mean more overhead and thus less hashes!

You have a CPU with hyper-threading, so you have 8 logical cores, this is not the same as having 8 physical cores. Have you tried running it with 4 threads (just for fun)?



Also, imagine having a racetrack with 4 lanes. You can drive 8 or 16 cars on it. But you'll still have to let 4 cars drive side-by-side at a time. You can throw any amount of cars at it as you want, but someone is going to have to synchronise those cars, so that'll just mean the racetrack is used less.

Ideally you should have 8 cars on a 4 lane racetrack. This way the cars that have exited the racetrack have some time to exchange their lap times while the other 4 cars use the racetrack. They can then almost perfectly relieve each other, like a relay race.

Having less than 4 cars on this racetrack means the racetrack will not be used all the time, since the racers in the cars want to exchange their lap times with each other after exiting the racetrack (the processes want to give back a result to the minerd thread).

Having more than 8 cars means there will always be cars waiting to enter the racetrack, so you'll just have cars waiting a lot of time before they can race on the racetrack.