Hi guys,
This subject may have been covered already, so my apologies if it's duplicated.
Firstly, I was wondering if it was now possible to build a 64bit version of Celestia to take advantage of the latest 64bit hardware and OS's (Windows 7 in particular).
More importantly, is there any motivation amongst the DEVs to make Celestia a multi-threading application?
IMO, at this point in time, this should be a priority over adding new features as the performance gains on multi-core processors could be quite spectacular.
I'm assuming that you could target certain parts of the code for multi-threading (computations that rely on the CPU rather than the GPU)... my guess would be script execution, reference frame / positional calculations, etc, might be areas that would benefit greatly from this.
For example, in my models. multiple objects are positioned using reference frames (many objects are often positioned relative to the same object), and the trajectories and orientations of many moving objects are computed by lua/celx scripts. There can end up being a huge number of computations to be done between render cycles, and being able to use all processor cores would I think improve frame-rates significantly in this type of scenario, as I suspect that the more objects you control with celx/lua scripting, the more likely you are to be CPU-bound, as all the computations for objects in the FOV must be completed between each rendered frame.
Regards
CC
64bit and multi-threading
-
Topic authorChuft-Captain
- Posts: 1779
- Joined: 18.12.2005
- With us: 18 years 11 months
64bit and multi-threading
"Is a planetary surface the right place for an expanding technological civilization?"
-- Gerard K. O'Neill (1969)
CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS
-- Gerard K. O'Neill (1969)
CATALOG SYNTAX HIGHLIGHTING TOOLS LAGRANGE POINTS
Re: 64bit and multi-threading
Qt (used for the user interface) currently does not provide a 32-bit version for Windows. A similar issue is present with gettext (used for the translations) - Visual Studio is no longer a supported compiler, you need to either use MinGW or Cygwin to build it and these environments are both 32-bit.
So at the moment there are no plans to go 64-bit on Windows.
So at the moment there are no plans to go 64-bit on Windows.
- John Van Vliet
- Posts: 2944
- Joined: 28.08.2002
- With us: 22 years 2 months
Re: 64bit and multi-threading
--- edit ---
Last edited by John Van Vliet on 19.10.2013, 05:57, edited 1 time in total.
Re: 64bit and multi-threading
64 bit is a more pressing issue since:
- conversion is possible so decently written, modern code can be compiled for 32 or 64 bit without recoding stuff.
- most people who buy a computer now have a 64 bit processor and a 64 bit version of Windows
- compatibility things like this should have a higher priority than the performance thing in this example.
Besides that I'm hoping to slowly but certainly go to 64 bit and only use 64 programs.
- conversion is possible so decently written, modern code can be compiled for 32 or 64 bit without recoding stuff.
- most people who buy a computer now have a 64 bit processor and a 64 bit version of Windows
- compatibility things like this should have a higher priority than the performance thing in this example.
Besides that I'm hoping to slowly but certainly go to 64 bit and only use 64 programs.
Re: 64bit and multi-threading
64-bit versions of Windows include WOW64 that enables 32-bit applications to run. I'm doing this with Celestia already, haven't had issues with it.duds26 wrote:64 bit is a more pressing issue since:
- conversion is possible so decently written, modern code can be compiled for 32 or 64 bit without recoding stuff.
- most people who buy a computer now have a 64 bit processor and a 64 bit version of Windows
- compatibility things like this should have a higher priority than the performance thing in this example.
Besides that I'm hoping to slowly but certainly go to 64 bit and only use 64 programs.
This is not a compatibility issue on Windows.
Re: 64bit and multi-threading
Hello,
For the multi-threaded part of this post, I am playing around with openMP and Celestia:
This is just a proof of concept, and so far I am just doing the loading in separate threads, but as you know that implies a lot of IO operations, and IOs are not very good for multi-threading.
For 64b build I was wondering if LLVM might be useful?
Cheers
For the multi-threaded part of this post, I am playing around with openMP and Celestia:
This is just a proof of concept, and so far I am just doing the loading in separate threads, but as you know that implies a lot of IO operations, and IOs are not very good for multi-threading.
For 64b build I was wondering if LLVM might be useful?
Cheers
Interesting Projects:
Celestia an open source space simulator.
EventGhost an open source PC remote control.
TA Spring
OpenTTD
Celestia an open source space simulator.
EventGhost an open source PC remote control.
TA Spring
OpenTTD
Re: 64bit and multi-threading
Interesting.
@xyz
What if you would make the record video functionality a separate thread?
you know, putting the encoding in a separate thread of execution.
@xyz
What if you would make the record video functionality a separate thread?
you know, putting the encoding in a separate thread of execution.
Re: 64bit and multi-threading
There is also mingw for 64 bit:
http://mingw-w64.sourceforge.net/
http://mingw-w64.sourceforge.net/
Re: 64bit and multi-threading
Sounds like a good idea although I don't think this is a good candidate for OpenMP.duds26 wrote:Interesting.
@xyz
What if you would make the record video functionality a separate thread?
you know, putting the encoding in a separate thread of execution.
Agree, but in the case of mingw the code needs to be "massaged" here and there to make it work. The nice thing with llvm is that it can take your c++ code and:duds26 wrote:There is also mingw for 64 bit:
http://mingw-w64.sourceforge.net/
An easily retargettable code generator, which currently supports X86, X86-64, PowerPC, PowerPC-64, ARM, Thumb, SPARC, Alpha, CellSPU, MIPS, MSP430, SystemZ, and XCore.
Cheers
Interesting Projects:
Celestia an open source space simulator.
EventGhost an open source PC remote control.
TA Spring
OpenTTD
Celestia an open source space simulator.
EventGhost an open source PC remote control.
TA Spring
OpenTTD