| Pages: [1] :: one page |
| Author |
Thread Statistics | Show CCP posts - 1 post(s) |

Darek Castigatus
Immortalis Inc. Shadow Cartel
445
|
Posted - 2013.11.25 21:27:00 -
[1] - Quote
So im curious if CCP has ever actually sat down and worked out how long it would take to rewrite the current code to take advantage of multi threading??
I know its always been mentioned as a major issue in terms of performance improvements but i know next to nothing about it other than a lot of people say it would make ramping up eves performance much easier.
Pirates - The Invisible Fist of Darwin
you're welcome |

brinelan
The Flying Dead Insidious Empire
108
|
Posted - 2013.11.25 21:53:00 -
[2] - Quote
They have said in the past that the problem is keeping the threads in sync is the bigger issue. So if thread 0 has your command to shoot and thread 1 processed that command and the ship exploded, if they get out of sync your target would explode before your click to shoot registers. May not be the best example but its an example nonetheless. |

James Amril-Kesh
4S Corporation Goonswarm Federation
6407
|
Posted - 2013.11.25 21:54:00 -
[3] - Quote
brinelan wrote:They have said in the past that the problem is keeping the threads in sync is the bigger issue. So if thread 0 has your command to shoot and thread 1 processed that command and the ship exploded, if they get out of sync your target would explode before your click to shoot registers. May not be the best example but its an example nonetheless. Race conditions are a *****. EVE Online - An Unstable Game |

babyblue
TSOE Po1ice TSOE Consortium
1
|
Posted - 2013.11.25 22:25:00 -
[4] - Quote
You won't neccessarily get a performance gain anyway due to something called False Sharing. I've seen code designed to run on 8 cores (4 cores x 4 hyperthreaded) only give 1.5x performance when a naive interpretation of program flow would make you think it should be nearer 8x as fast. Coding to avoid false sharing is very hard on modern CPUs. Firaxis managed to solve the problem in Civilisation V with some very clever pipelining tricks (well, not tricks, just a good design pattern). The problem for Eve is a lot of the code is running interpreted Stackless Python, so that's a whole other layer you'd have to strip out and re-write to give you more control over the platform architecture.
As brinelan says, your thread synchronisation has to happen at some point in any case. For the graphics this happens in the driver, so the only gain you get from multi-threading is batching commands which might not be much of a win (DirectX demos certainly don't impress very much). On the server side, there need to be low level locks all over the place to keep things in sync, so the bottleneck might appear there even if you solve it elsewhere.
I think in future a lot of grunt work will be done server-side with CUDA, Direct Compute or similar, making use of GPUs like NVIDIA's Tesla. You'd get a massive performance gain but... you still need to synchronise, so perhaps not.
Anyway, multi-threading software is hard and debugging multi-threaded software is even harder. It can make a developer go grey overnight.
Cheers.
|

Tippia
Sunshine and Lollipops
17528
|
Posted - 2013.11.25 22:38:00 -
[5] - Quote
Somewhere between 1 and 58 years.
Some of it is already in progress, but is less about classic multithreading and more about sectioning off particular tasks that aren't as reliant on continuous synchronisation and offloading them to a separate server. GÇ£If you're not willing to fight for what you have in GëívGëí you don't deserve it, and you will lose it.GÇ¥
Get a good start: newbie skill plan 2.0. |

Tau Cabalander
Retirement Retreat Working Stiffs
2297
|
Posted - 2013.11.25 22:50:00 -
[6] - Quote
Last I checked, CPU usage wasn't an issue, but GPU usage is.
Damn cloud effects!
CCP is transitioning to DX11 though. |

Frostys Virpio
Lame Corp Name
774
|
Posted - 2013.11.25 23:15:00 -
[7] - Quote
Tippia wrote:Somewhere between 1 and 58 years.
Some of it is already in progress, but is less about classic multithreading and more about sectioning off particular tasks that aren't as reliant on continuous synchronisation and offloading them to a separate server.
Sometime it really feel like doing code from scratch is easyer than "morphing" to multi threaded. |

Frostys Virpio
Lame Corp Name
774
|
Posted - 2013.11.25 23:17:00 -
[8] - Quote
Tau Cabalander wrote:Client side:
Last I checked, CPU usage wasn't an issue, but GPU usage is.
Damn cloud effects!
CCP is transitioning to DX11 though.
Server side:
Stackless Python. That wouldn't have been my first choice.
It probably looked like a good idea 10 years ago. Maybe they just never predicted it would have that many client connected to a single system at the same time so a single thread was not that bad. |

Toshiro Ozuwara
SniggWaffe WAFFLES.
325
|
Posted - 2013.11.25 23:20:00 -
[9] - Quote
brinelan wrote:They have said in the past that the problem is keeping the threads in sync is the bigger issue. So if thread 0 has your command to shoot and thread 1 processed that command and the ship exploded, if they get out of sync your target would explode before your click to shoot registers. May not be the best example but its an example nonetheless. That already happens when you shoot someone with missiles at range. The wreck tends to appear before the missiles land. We teach ruthlessness and hazing. No blues. Kill everything.
In-game channel - Join Sniggwaffe |
| |
|
| Pages: [1] :: one page |
| First page | Previous page | Next page | Last page |