Xonotic Forums
Parallelization of Xonotic (and Darkplaces engine) - Printable Version

+- Xonotic Forums (https://forums.xonotic.org)
+-- Forum: Creating & Contributing (https://forums.xonotic.org/forumdisplay.php?fid=10)
+--- Forum: Xonotic - Development (https://forums.xonotic.org/forumdisplay.php?fid=12)
+--- Thread: Parallelization of Xonotic (and Darkplaces engine) (/showthread.php?tid=2344)



Parallelization of Xonotic (and Darkplaces engine) - Sarge999 - 11-16-2011

I've been asking myself, whether or not it's possible to parallelize the code of xonotic, or if it already has been? How well are modern games adapted to multi-core architecture, anyways? At work I regularly use parallel linux software (4-16 cores) for calculations with openMPI and MPICH. Is it even possible (or let's say practical) to develop parallel code that's compatible to both linux and windows simultaneously without barriers? Would it be worth the effort? What could be realized using e.g. openMPI under linux? Just wondering...


RE: Parallelization of Xonotic (and Darkplaces engine) - frostwyrm333 - 11-16-2011

its not worth the effort, i dont think that there are specific tasks that would require heavy cpu use


RE: Parallelization of Xonotic (and Darkplaces engine) - Sarge999 - 11-17-2011

Since your answer is short, you're a Junior member, parallization rocks and I fragged you yesterday, I do not consider your answer appropriate. Further, there are tasks that require heavy CPU usuage and I can tell, since I play Xonotic on a rig with totally oversized GPU compared to CPU power (HD4650 on AthlonXP 2800+DTR). Therefore I get the same FPS no matter what graphic settings I enter ("ultra" settings excluded, as there are strange lags). Hence, Xonotic is obviously heavily relying on CPU, so parallization is worth considering. This is particularly true, due to the fact that power in terms of CPU frequency is not going to increase any further. Apart from that, there is no other important game that uses the darkplaces engine apart from Xonotic (as Nexuiz is a commercial project now and uses CryEngine), so if there's any parallization of the darkplaces engine, it's going to happen here. In conclusion: Parallization is the future of programming and you can't deny that (I'll frag you for that comment Wink)


RE: Parallelization of Xonotic (and Darkplaces engine) - naryl - 11-17-2011

Some server features require heavy CPU use.


RE: Parallelization of Xonotic (and Darkplaces engine) - booo - 11-17-2011

Hi Sarge, also a heavy user/ but mediumly competent parallel coder here in rl.

Why care about MPI and distributed memory parallelism ? Shared memory parallelism, like thread building blocks (intel TBB) or perhaps some pragma openMP task directives might be beneficial. If its not in the form of a an asynchronous task based form, it would mean absolutely nothing.

I haven't looked into the code/engine of darkplaces, but i somehow expect all the heavy array traversals or evaluations not to be worth #pragma for looping.

But my gut feeling is that this only would be worth on the server, not the client. The really heavy stuff is done on the gpu , correct me someone if i m wrong.


RE: Parallelization of Xonotic (and Darkplaces engine) - jngdwe - 11-18-2011

Big words.


Are we talking of making Xonotic utilize more than one core? If so, I agree entirely. One of my friends has a crappy AMD Dual Core with a 9800GT and his rig runs the game smoother than my AMD Phenom II x6 1100t and Radeon HD 6870, with 8GB of RAM. To be completely honest, I find it a bit odd that no one has tried to further optimize the game in this way. Multithreaded Xon would be a big step forward.


RE: Parallelization of Xonotic (and Darkplaces engine) - frostwyrm333 - 11-18-2011

@Sarge999 yes, theory is nice, but they are not actually working on the engine much and I doubt they are going to do such large task, game is already a lot faster since nexuiz, they could optimize it more in th future
and who is junior?


RE: Parallelization of Xonotic (and Darkplaces engine) - naryl - 11-18-2011

frostwyrm333, I clearly remember somebody from the core team saying that the next release *will be multithreaded*.


RE: Parallelization of Xonotic (and Darkplaces engine) - Mepper - 11-18-2011

I thought divVergent said, correct me if I'm wrong, that Xonotic can already use more that one core.


RE: Parallelization of Xonotic (and Darkplaces engine) - Mr. Bougo - 11-19-2011

The sound is threaded, I guess that's all.


RE: Parallelization of Xonotic (and Darkplaces engine) - Lord Canistra - 11-19-2011

Quote:Since your answer is short, you're a Junior member, parallization rocks and I fragged you yesterday...
Pwned.

But, even if I'm not that profound when it comes to this particular topic, I must admit that at least resource loading could benefit from multithreading, as (at least for me) the game never uses more than one core during loading of map and corresponding stuff. And I get loading times like 2-3 mins per one good map and it isn't nice at all.


RE: Parallelization of Xonotic (and Darkplaces engine) - chooksta - 11-19-2011

lord canistra

2-3 minutes loading up a map??

whats your cpu specs????

this may not help , but all i use is a nec versa p8100 (single core , 256 graph , 1.5 ram ) , and it loads the maps in about 10-20 seconds (roughly)
the graphics have been turned down , of which may explain it , but 2-3 min?
have you got ultra settings , with added gold sparkles which also reflect the surroundings and you have so much detail you can see your own reflection off your enemy's eye pupil????

wow Smile

as another thought , and idk to be honest , windows has that ready boost thingo with sd/usb drives , can some of the game nerd data get farmed out to one of them? , if ya dont have enuf ram? , quicker? (i dont need it , game runs fine , but if it helped a bit..)

t

:^


RE: Parallelization of Xonotic (and Darkplaces engine) - Mirio - 11-19-2011

(11-18-2011, 10:57 AM)frostwyrm333 Wrote: and who is junior?

http://pics.nexuizninjaz.com/images/h7nljgeffxtnrdeyf2i.jpg
It's called "Custom User Title" and you can change it at User CP -> Edit Profile.
This is the default title and it changes if you get more posts. For me it says I'm a "Senior member", but I changed it. Smile


RE: Parallelization of Xonotic (and Darkplaces engine) - Dave - 11-19-2011

Slide sets (yes papers would be nicer) from Valve and id about their parallelization approaches:
http://www.valvesoftware.com/publications/2007/GDC2007_SourceMulticore.pdf
http://s09.idav.ucdavis.edu/talks/05-JP_id_Tech_5_Challenges.pdf


RE: Parallelization of Xonotic (and Darkplaces engine) - frostwyrm333 - 11-19-2011

Mirio - yes I noticed that, he said I am junior and he is too, funny

and hehe, its parallelization not parallization


RE: Parallelization of Xonotic (and Darkplaces engine) - Lord Canistra - 11-19-2011

@chooksta
I guess my CPU (i7 920 @ 2.67 GHz) should be sufficient for loading times as quick as yours. Dunno what's the reason, but loading of the first map after game launch goes reeeaally slow.


RE: Parallelization of Xonotic (and Darkplaces engine) - Sarge999 - 11-20-2011

(11-19-2011, 02:37 PM)frostwyrm333 Wrote: and hehe, its parallelization not parallization
pwned Big Grin Don't be upset, I'm just joking Big Grin


RE: Parallelization of Xonotic (and Darkplaces engine) - nilyt - 11-21-2011

(11-19-2011, 04:24 PM)Lord Canistra Wrote: @chooksta
I guess my CPU (i7 920 @ 2.67 GHz) should be sufficient for loading times as quick as yours. Dunno what's the reason, but loading of the first map after game launch goes reeeaally slow.

Well if that doesn't sound like I/O I don't know what would.
Are you precaching data from an USB thumbdrive maybe? Tongue


RE: Parallelization of Xonotic (and Darkplaces engine) - Lord Canistra - 11-21-2011

Almost. From USB hard drive. And I'm positive I didn't stick it into 1.0 USB port or whatever. There are several other games on it yet Xonotic is first game ever to have such long resource loading times.


RE: Parallelization of Xonotic (and Darkplaces engine) - Sarge999 - 11-21-2011

Parallelization won't help you when loading from USB2.0, however, you could try to compress the files on the hard drive to gain speed, since CPU decompression might be faster than loading uncompressed data from USB2.0.