View Issue Details

IDProjectCategoryView StatusLast Update
0001618SkyChart1-Softwarepublic17-10-21 20:28
ReporterSasaAssigned ToPatrick Chevalley 
PrioritynoneSeverityfeatureReproducibilityhave not tried
Status acknowledgedResolutionopen 
PlatformLinux 32-bitOSKubuntuOS Version16.04
Product Version3.11 SVN 
Target Version4.4Fixed in Version 
Summary0001618: Multiple core CPU usage
DescriptionIt would be nice for some future version to make it able to use multiple core CPU feature. I'm not sure about Lazarus support regarding parallelism, however, allowing threading for critical processes may trigger newer OS to split execution on free cores.

This may radically boost speed of CDC on multiple core CPUs as now all is executed in sequential order on single core. However, threading is not simple task at all for this large project, thus priority is set to none for now.

The reason for this suggestion is simple: most of nowadays CPUs are with double or more cores.
TagsNo tags attached.


Patrick Chevalley

17-01-25 10:48

administrator   ~0003562

There is already a number of place CdC use parallel compute thread depending on the number of core in your processor.
This is in the most CPU consuming functions and when parallelism is easy: the functions that draw picture in the full window for the DSS or image list, and the horizon picture.
cu_fits.pas : procedure TFits.GetProjBitmap
cu_fits.pas : procedure TFits.GetProjList
cu_skychart.pas : procedure Tskychart.DrawHorizonPicture

Using parallelism to draw planet, stars and dso at the same time for example can be very complicated because of the chart bitmap shared resource.
This require to first separate searching in the catalog (that can be parallel) from drawing (that cannot).


17-01-25 12:07

reporter   ~0003563

From another point of view, drawing can be separated as well.

For instance, draw stars separately in one thread, planets in another etc, then finally collect all these separated images and simply blend one over another over the main chart image and finally draw labels depending on data from all separated sources and used algorithm to avoid overlapping...

All in all, with more cores, more memory and more free time to achieve, all can be indeed very fast.

Issue History

Date Modified Username Field Change
17-01-25 07:41 Sasa New Issue
17-01-25 10:48 Patrick Chevalley Assigned To => Patrick Chevalley
17-01-25 10:48 Patrick Chevalley Status new => acknowledged
17-01-25 10:48 Patrick Chevalley Note Added: 0003562
17-01-25 12:07 Sasa Note Added: 0003563
17-02-15 22:15 Patrick Chevalley Target Version => 4.2
17-10-21 20:28 Patrick Chevalley Target Version 4.2 => 4.4