Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MMTk core PR #1094 slowdown Julia #147

Open
qinsoon opened this issue Apr 29, 2024 · 0 comments
Open

MMTk core PR #1094 slowdown Julia #147

qinsoon opened this issue Apr 29, 2024 · 0 comments

Comments

@qinsoon
Copy link
Member

qinsoon commented Apr 29, 2024

mmtk/mmtk-core#1094 changed the SFT map implementation to SFTDenseMap when vm_space is enabled for correctness reasons. As we know SFTDenseMap performs worse, and this change affects Julia + MMTk performance negatively. We see slowdown up to 15% in GC time for some benchmarks.

Normalized results

total time gc time mutator time
('multithreaded-big_arrays-issue-52937', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('multithreaded-big_arrays-issue-52937', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 0.997136 0 0.997136
('multithreaded-big_arrays-objarray', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('multithreaded-big_arrays-objarray', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.01231 1.03808 1.00693
('multithreaded-binary_tree-tree_immutable', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('multithreaded-binary_tree-tree_immutable', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.03907 1.07512 1.00402
('multithreaded-binary_tree-tree_mutable', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('multithreaded-binary_tree-tree_mutable', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.04052 1.08186 1.00477
('multithreaded-mergesort_parallel-mergesort_parallel', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('multithreaded-mergesort_parallel-mergesort_parallel', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.00196 0 1.00196
('multithreaded-mm_divide_and_conquer-mm_divide_and_conquer', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('multithreaded-mm_divide_and_conquer-mm_divide_and_conquer', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.0079 0 1.0079
('serial-TimeZones-TimeZones', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('serial-TimeZones-TimeZones', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.04728 0 1.04728
('serial-append-append', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('serial-append-append', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.09984 1.12163 0.999188
('serial-big_arrays-many_refs', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('serial-big_arrays-many_refs', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 0.989741 0.990786 0.986718
('serial-big_arrays-single_ref', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('serial-big_arrays-single_ref', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 0.989843 0.989805 0.990089
('serial-bigint-pollard', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('serial-bigint-pollard', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.10983 1.16513 1.0113
('serial-linked-list', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('serial-linked-list', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.00937 0 1.00937
('serial-linked-tree', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('serial-linked-tree', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.00088 0 1.00088
('serial-strings-strings', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 0 1
('serial-strings-strings', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 0.993816 0 0.993816
('slow-bigint-pidigits', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('slow-bigint-pidigits', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.14245 1.149 1.01848
('slow-rb_tree-rb_tree', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1 1 1
('slow-rb_tree-rb_tree', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 0.999169 0.97978 0.999665

Without normalization

total time gc time mutator time
('multithreaded-big_arrays-issue-52937', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 105672 0 105672
('multithreaded-big_arrays-issue-52937', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 105370 0 105370
('multithreaded-big_arrays-objarray', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 39175.8 6770 32405.8
('multithreaded-big_arrays-objarray', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 39658.1 7027.8 32630.3
('multithreaded-binary_tree-tree_immutable', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 29514.4 14547.3 14967.1
('multithreaded-binary_tree-tree_immutable', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 30667.4 15640.1 15027.3
('multithreaded-binary_tree-tree_mutable', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 42100.3 19521.8 22578.5
('multithreaded-binary_tree-tree_mutable', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 43806 21119.8 22686.2
('multithreaded-mergesort_parallel-mergesort_parallel', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 18882.6 0 18882.6
('multithreaded-mergesort_parallel-mergesort_parallel', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 18919.6 0 18919.6
('multithreaded-mm_divide_and_conquer-mm_divide_and_conquer', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 7177.4 0 7177.4
('multithreaded-mm_divide_and_conquer-mm_divide_and_conquer', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 7234.1 0 7234.1
('serial-TimeZones-TimeZones', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 9200.7 0 9200.7
('serial-TimeZones-TimeZones', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 9635.7 0 9635.7
('serial-append-append', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 40132.6 32991.6 7141
('serial-append-append', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 44139.6 37004.4 7135.2
('serial-big_arrays-many_refs', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 3460.5 2572.1 888.4
('serial-big_arrays-many_refs', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 3425 2548.4 876.6
('serial-big_arrays-single_ref', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 6449 5581.3 867.7
('serial-big_arrays-single_ref', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 6383.5 5524.4 859.1
('serial-bigint-pollard', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 5365.6 3436.6 1929
('serial-bigint-pollard', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 5954.9 4004.1 1950.8
('serial-linked-list', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 4281.3 0 4281.3
('serial-linked-list', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 4321.4 0 4321.4
('serial-linked-tree', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 113775 0 113775
('serial-linked-tree', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 113876 0 113876
('serial-strings-strings', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 39696.9 0 39696.9
('serial-strings-strings', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 39451.4 0 39451.4
('slow-bigint-pidigits', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 6.46475e+06 6.14039e+06 324355
('slow-bigint-pidigits', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 7.38565e+06 7.0553e+06 330348
('slow-rb_tree-rb_tree', 'julia-mmtk-master(1.5x minheap,.mmtk_gc_threads-12)') 1.90513e+06 47542.9 1.85759e+06
('slow-rb_tree-rb_tree', 'julia-mmtk-pr(1.5x minheap,.mmtk_gc_threads-12)') 1.90354e+06 46581.6 1.85696e+06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant