Taedrin
Royal Hiigaran Navy
|
Posted - 2008.06.06 17:46:00 -
[1]
Edited by: Taedrin on 06/06/2008 17:47:41
Originally by: Damien Cerverus seconded and signed
as a witness of mega lag generated by the NC and Trisurg wars (especially the QCWA- incident)the lag issue needs to be addressed by the eve-devs if at all possible.
one suggestion ive heard from a tech friend of mine was eve should go multi threaded. helps server end lag and user end lag for multi core processors
thoughts?
Multi-threading is only possible when the problem can be solved in parallel. Computing irrational numbers, analyzing protein structures and folding behaviors and processing background radiation are all problems which can be subdivided easily, and processed in multiple threads. But think about it rationally... how could you subdivide EVE's combat system?
When events occur in EVE's combat system, they MUST happen in order. For example, the 2 similar scenarios are identical except for their order of execution, but have 2 completely opposite results!
Scenario 1: Titan starts warp attempt HIC tackles Titan Titan reaches necessary speed to warp RESULT: Titan fails to enter warp
Scenario 2: Titan starts warp attempt Titan reaches necessary speed to warp HIC tackles Titan RESULT: Titan gets away (HIC doesn't tackle Titan until it is already in warp)
If you have 2 threads computing the same engagement, but both threads produce different results, how should you reconcile the differences? Which one is right? Which one is wrong? This problem becomes much larger as you increase the number of interacting entities and the number of threads.
Multi-threading is not a silver bullet. When you have multiple threads working on the same data, you have a whole new slew of bugs and problems. Resource locking, race conditions, deadlock, livelock, etc... And on top of this, you still have the same bottlenecks that a single threaded app has: Memory bandwidth, I/O lag, waiting for devices, etc... The problem is that even if you multithreaded EVE combat, all the threads would be trying to access the same resources (memory). The advantages of multithreading are diminished when the threads have to wait for their turn to access a resource.
Now, CCP WILL be distributing SOME systems of EVE across multiple CPUs. They have stated that when they implement RDMA, market transactions and station activities will not effect out of station activities. This will hopefully help out immensely. The thing that I want to see implemented though, is dynamic node balancing. IIRC, currently in order for a system to be reinforced, they have to take the node down and manually set it up to work only on a single system. If they can get dynamic node balancing working, a system could be automatically reinforced when a large fleet jumps in, without CCP intervention.
/EDIT: However, I am in full support in multithreading the client, since the client performs NO vital computations in itself. I would really like it if EVE didn't lock up my entire computer everytime I opened up the market window, or tried to log in.
|