Info

Download ZIP (28.5 KB)

Testing and Issues

You can test this entry and submit issues during the testing period of the TON Block Validation Challenge contest.

Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.

Voting

33

Comments

It seems that the README.md got a little too squished, so duplicating list (it is actually in the patch itself, because patch was assembled from descriptive internal commits):

Add xallocator for DeferredCellData - may increase performance
Optimized memory management, removed unnecessary code
More updates and Merkle approaches
Small MerkleProof build optimizations and some preparations
Added Actor Worker option for accounts checking
Added parallel checking of accounts (transactions)
Add Solution Control Panel
Add pluggable Actor Workers logic
Moved stuff in BoC_DS off the stack into the heap

ALSO, the motivation, changes themselves are describe in comments near the code where the change was implemented. The tried but unsuccessful optimizations may also be present in comments in the code.
It also seems that sol-controls.h (which allow to turn on or off *most* optimizations) are configured right now for the multi-threaded variant, so, to evaluate best CPU time (single-threaded):
UNCOMMENT #define OPTIMIZE_FOR_CPU_TIME
COMMENT // #define CELL_USAGE_TREE_MUTEX

For most effective multi-threaded optimized variant:
Well, it seems that it is already in the patch o_o

Merkle DFS pipelines do nothing (did not manage to implement in time), but idea is described in comments in actual MerkleUpdate file.

Single-threaded solution improved performance to 3.2~3.33 seconds from 5~5.05 initial total.

Multithreaded option drops total down to about 2.7, but cpu time back to 4.7-4.9.
You have not added any comments yet...
by rating

Issues

FINAL TESTING RESULTS for entry6378
Passed 11841/11841 tests
Real time: 614.573798s
CPU time: 973.541155s
Baseline real time: 975.120982s, 36.97% improvement
Baseline CPU time: 897.583775s
Shiny Giraffe Feb 19 at 14:42
Thank you for your evaluation!

I would like to draw attention, that, sadly, it is not possible to submit two different submissions (and sending under two different accounts would be unfair and, likely, illegal), and, mostly, CPU time and Multithreaded optimizations are mutually exclusive (one impairs other), so this submission also has CPU time optimized mode that can be activated by changing sol-controls.h file:

UNCOMMENT #define OPTIMIZE_FOR_CPU_TIME
COMMENT // #define CELL_USAGE_TREE_MUTEX

By the way, in my tests it should provide about 30% - 33% improvement in both real and CPU times, so it may be worth to check it out, but no pressure, of course.
Nobody added any issues yet...