13.2 Improving the processing speed

Problem

How can I increase the computing speed of HARK?

Solution

The processing speed of HARK is dominated basically by the complexity of the nodes and their algorithms created by the user. As examples, the more you process eigenvalue expansion in LocalizeMUSIC , save of SaveFeatures or indications by cout and cerr, the longer the processing time required for one count. The simplest way of increasing processing speed is to construct simple nodes. (Algorithms have been improved for current HARK nodes to increase the speed of real time processing.) Two other methods can improve processing speed, although the improvements would be slight.

Discussion

Evaluate the performance of each, by analyzing the patterns compiled with options of -O, -O1, -O2, and -O3, and those for which IN_ORDER_NODE_SPEEDUP is further added. Thus, the processing times of eight patterns are compared. For comparison, use the algorithm for simple processing for each node, with processing times measured in 100 nodes connected in series.

int count_time = 100000000;
for (i = 0;i < count_time;i++)n = n + i;

Tables 13.1 and 13.2 show results without and with IN_ORDER_NODE_SPEEDUP, respectively. Computing times did not differ significantly, with processing speeds being only 3 percent higher with a combination of an optimization option and IN_ORDER_NODE_SPEEDUP.

Table 13.1: Elapsed Times without IN_ORDER_NODE_SPEEDUP

Option

O3

O2

O1

O

 

14.2408

12.7574

14.0147

14.1765

 

13.9518

14.0789

14.2417

14.3901

 

13.912

14.0633

14.5486

13.7121

 

14.3929

13.9978

14.2038

14.1017

 

13.7976

14.3931

13.8478

14.2374

 

14.0315

13.9962

14.5201

14.1924

 

14.3108

14.0069

14.1044

14.1694

 

14.0055

14.3397

14.2014

14.5729

 

14.004

14.0419

14.467

14.1911

 

14.4457

13.8734

14.1159

14.2177

Total

141.0926

139.5486

142.2654

141.9613

Average

14.10926

13.95486

14.22654

14.19613

Table 13.2: Elapsed Times with IN_ORDER_NODE_SPEEDUP

Option

O3 + speedup

O2 + speedup

O1 + speedup

O + speedup

 

14.0007

13.8055

14.3469

14.4444

 

14.3702

13.5448

13.9894

14.1628

 

14.0753

14.371

14.4229

13.8679

 

12.9333

13.8942

14.1801

14.5209

 

14.398

13.8926

13.7115

14.0369

 

13.6696

14.1745

14.5278

14.7882

 

14.0837

14.0613

13.9905

14.5343

 

14.4443

14.018

14.0915

14.1182

 

13.0798

14.4962

14.4936

14.5952

 

13.6339

14.1081

14.1904

14.2751

Total

138.6888

140.3662

141.9446

143.3439

Average

13.86888

14.03662

14.19446

14.33439

See Also

None