diff --git a/docs/EuroSys/Paper/paper.aux b/docs/EuroSys/Paper/paper.aux index 7552443..95e25fa 100644 --- a/docs/EuroSys/Paper/paper.aux +++ b/docs/EuroSys/Paper/paper.aux @@ -37,7 +37,6 @@ \newlabel{fig:RangeOfMemory}{{2}{3}{Range of memory}{figure.caption.4}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.2}128 bit compressed bounds}{3}{subsection.3.2}\protected@file@percent } \newlabel{sec:128bitCompressedBounds}{{3.2}{3}{128 bit compressed bounds}{subsection.3.2}{}} -\citation{sec:FatPointerTranslations} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Fat-pointer Address Translations using huge pages}}{4}{figure.caption.5}\protected@file@percent } \newlabel{fig:HugePages}{{3}{4}{Fat-pointer Address Translations using huge pages}{figure.caption.5}{}} \@writefile{toc}{\contentsline {subsection}{\numberline {3.3}Instrumenting Block-Based Allocators with Physically Contiguous Memory}{4}{subsection.3.3}\protected@file@percent } @@ -49,9 +48,6 @@ \newlabel{alg:free}{{2}{4}{Free implementation}{algorithm.2}{}} \citation{jemalloc} \citation{cheribsd} -\citation{sec:Micro} -\citation{sec:Macro} -\citation{sec:Results} \citation{Morello} \citation{BenchmarkABI} \citation{PerformanceCounter} @@ -67,6 +63,8 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.1}Micro benchmark}{5}{subsubsection.5.2.1}\protected@file@percent } \newlabel{sec:Macro}{{5.2.2}{5}{Macro benchmark}{subsubsection.5.2.2}{}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.2.2}Macro benchmark}{5}{subsubsection.5.2.2}\protected@file@percent } +\citation{singh1993} +\citation{holt1995} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3}Results}{6}{subsection.5.3}\protected@file@percent } \newlabel{sec:Results}{{5.3}{6}{Results}{subsection.5.3}{}} \@writefile{lot}{\contentsline {table}{\numberline {1}{\ignorespaces ARM performance counters}}{6}{table.caption.6}\protected@file@percent } @@ -86,19 +84,21 @@ \bibcite{DirectSegment}{{7}{}{{}}{{}}} \bibcite{karakostas_redundant_2015}{{8}{}{{}}{{}}} \bibcite{chen_flexpointer_2023}{{9}{}{{}}{{}}} -\bibcite{jemalloc}{{10}{}{{}}{{}}} -\bibcite{cheribsd}{{11}{}{{}}{{}}} -\bibcite{Morello}{{12}{}{{}}{{}}} -\bibcite{BenchmarkABI}{{13}{}{{}}{{}}} -\bibcite{PerformanceCounter}{{14}{}{{}}{{}}} -\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Usability}{8}{subsection.5.4}\protected@file@percent } -\newlabel{sec:Usability}{{5.4}{8}{Usability}{subsection.5.4}{}} +\@writefile{toc}{\contentsline {subsection}{\numberline {5.4}Analysis}{8}{subsection.5.4}\protected@file@percent } +\newlabel{sec:Analysis}{{5.4}{8}{Analysis}{subsection.5.4}{}} \@writefile{toc}{\contentsline {section}{\numberline {6}Future work}{8}{section.6}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {6.1}Storing Offsets Directly on Pointers}{8}{subsection.6.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {6.2}Hardware Modifications:}{8}{subsection.6.2}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {7}Conclusion}{8}{section.7}\protected@file@percent } \@writefile{toc}{\contentsline {section}{References}{8}{section*.10}\protected@file@percent } +\bibcite{jemalloc}{{10}{}{{}}{{}}} +\bibcite{cheribsd}{{11}{}{{}}{{}}} +\bibcite{Morello}{{12}{}{{}}{{}}} +\bibcite{BenchmarkABI}{{13}{}{{}}{{}}} +\bibcite{PerformanceCounter}{{14}{}{{}}{{}}} \bibcite{Benchmark}{{15}{}{{}}{{}}} +\bibcite{singh1993}{{16}{}{{}}{{}}} +\bibcite{holt1995}{{17}{}{{}}{{}}} \newlabel{tocindent-1}{0pt} \newlabel{tocindent0}{0pt} \newlabel{tocindent1}{4.185pt} diff --git a/docs/EuroSys/Paper/paper.bbl b/docs/EuroSys/Paper/paper.bbl index 4c4e38c..abd2cad 100644 --- a/docs/EuroSys/Paper/paper.bbl +++ b/docs/EuroSys/Paper/paper.bbl @@ -85,4 +85,17 @@ Arm architecture reference manual for a-profile architecture. {CHERI}-allocator/benchmarks/benchmarks/{StressTestMalloc}/glibc-bench.c at main · akilan1999/{CHERI}-allocator. +\bibitem{singh1993} +Jaswinder~Pal Singh. +\newblock {\em Parallel Hierarchical N-body Methods and Their Implications for + Multiprocessors}. +\newblock PhD thesis, Stanford University, February 1993. + +\bibitem{holt1995} +C.~Holt and Jaswinder~Pal Singh. +\newblock Hierarchical n-body methods on shared address space multiprocessors. +\newblock In {\em SIAM Conference on Parallel Processing for Scientific + Computing}, February 1995. +\newblock To appear. + \end{thebibliography} diff --git a/docs/EuroSys/Paper/paper.blg b/docs/EuroSys/Paper/paper.blg index fc230a0..7978e87 100644 --- a/docs/EuroSys/Paper/paper.blg +++ b/docs/EuroSys/Paper/paper.blg @@ -13,10 +13,6 @@ Warning--entry type for "Morello" isn't style-file defined --line 507 of file paperReferences.bib Warning--entry type for "PerformanceCounter" isn't style-file defined --line 514 of file paperReferences.bib -Warning--I didn't find a database entry for "sec:FatPointerTranslations" -Warning--I didn't find a database entry for "sec:Micro" -Warning--I didn't find a database entry for "sec:Macro" -Warning--I didn't find a database entry for "sec:Results" Warning--empty journal in mittal_survey_2017 Warning--empty year in mittal_survey_2017 Warning--empty year in panwar_hawkeye_2019 @@ -29,45 +25,45 @@ Warning--empty year in THP Warning--empty year in karakostas_redundant_2015 Warning--empty journal in chen_flexpointer_2023 Warning--empty year in chen_flexpointer_2023 -You've used 15 entries, +You've used 17 entries, 1791 wiz_defined-function locations, - 530 strings with 6646 characters, -and the built_in function-call counts, 3384 in all, are: -= -- 247 -> -- 203 + 533 strings with 6851 characters, +and the built_in function-call counts, 3698 in all, are: += -- 273 +> -- 215 < -- 3 -+ -- 75 -- -- 60 -* -- 264 -:= -- 513 -add.period$ -- 37 -call.type$ -- 15 -change.case$ -- 15 ++ -- 80 +- -- 63 +* -- 278 +:= -- 567 +add.period$ -- 44 +call.type$ -- 17 +change.case$ -- 16 chr.to.int$ -- 0 -cite$ -- 27 -duplicate$ -- 134 -empty$ -- 333 -format.name$ -- 60 -if$ -- 736 +cite$ -- 29 +duplicate$ -- 153 +empty$ -- 369 +format.name$ -- 63 +if$ -- 806 int.to.chr$ -- 0 -int.to.str$ -- 15 -missing$ -- 9 -newline$ -- 68 -num.names$ -- 10 -pop$ -- 66 +int.to.str$ -- 17 +missing$ -- 10 +newline$ -- 79 +num.names$ -- 12 +pop$ -- 74 preamble$ -- 1 purify$ -- 0 quote$ -- 0 -skip$ -- 89 +skip$ -- 95 stack$ -- 0 substring$ -- 191 -swap$ -- 28 +swap$ -- 31 text.length$ -- 3 text.prefix$ -- 0 top$ -- 0 type$ -- 0 warning$ -- 12 -while$ -- 25 -width$ -- 17 -write$ -- 128 -(There were 21 warnings) +while$ -- 27 +width$ -- 19 +write$ -- 151 +(There were 17 warnings) diff --git a/docs/EuroSys/Paper/paper.fdb_latexmk b/docs/EuroSys/Paper/paper.fdb_latexmk index aeb026f..dc8d350 100644 --- a/docs/EuroSys/Paper/paper.fdb_latexmk +++ b/docs/EuroSys/Paper/paper.fdb_latexmk @@ -1,13 +1,14 @@ # Fdb version 4 -["bibtex paper"] 1744381307.91479 "paper.aux" "paper.bbl" "paper" 1744381309.50412 0 - "./paperReferences.bib" 1744196148.81398 45813 26a8e1c09695a94d7f7d7e673ad229c8 "" +["bibtex paper"] 1744390568.64615 "paper.aux" "paper.bbl" "paper" 1744390570.25362 0 + "./paperReferences.bib" 1744390239.54673 46323 d7b94a445857170fc1233321d0322eaa "" "/usr/local/texlive/2025/texmf-dist/bibtex/bst/base/unsrt.bst" 1292289607 18030 1376b4b231b50c66211e47e42eda2875 "" - "paper.aux" 1744381309.20373 7953 abf8114744868342184253162a495cb1 "pdflatex" + "paper.aux" 1744390569.9295 7959 ac3c307910c71eb8d23b97795748826d "pdflatex" (generated) "paper.bbl" "paper.blg" (rewritten before read) -["pdflatex"] 1744381308.00238 "paper.tex" "paper.pdf" "paper" 1744381309.50425 0 +["pdflatex"] 1744390568.72948 "paper.tex" "paper.pdf" "paper" 1744390570.25376 0 + "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc" 1558214095 7693 0f2dce6d313c82989ec3a67fc24df2a0 "" "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_25tcsq.enc" 1490131464 2921 8ca0eb0831f9bc5da080d3697cfe67bf "" "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_76gpa5.enc" 1490131464 2933 9ad527ce78d7c5fa0a642dead095f172 "" "/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_7grukw.enc" 1490131464 2934 a4a9158faed2e9e89c771b4e3b7fc12f "" @@ -24,6 +25,7 @@ "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm5.tfm" 1246382020 940 75ac932a52f80982a9f8ea75d03a34cf "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/amsfonts/symbols/msbm7.tfm" 1246382020 940 228d6584342e91276bf566bcf9716b83 "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/cm/cmr9.tfm" 1136768653 1292 6b21b9c2c7bebb38aa2273f7ca0fb3af "" + "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/inconsolata/t1-zi4r-4.tfm" 1558214095 1328 82f7955e88a105d8e5acd89cb6526b12 "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1--base.tfm" 1490131464 1744 9486ddc64e90094bbb83f53a83b0e415 "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumT-tlf-t1.tfm" 1490131464 19548 768852037f39958c435d71846b8877ea "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTB-tlf-t1--base.tfm" 1490131464 1768 23aace73e6def3193d6e0453af90487b "" @@ -58,6 +60,7 @@ "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/stxscr.tfm" 1569879884 1836 3af1bb0996e7f6070b70151de6395c2c "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/txex-bar.tfm" 1699567298 900 fc8190d6de1e520c751c99f1e4e5fe0a "" "/usr/local/texlive/2025/texmf-dist/fonts/tfm/public/newtx/txsys.tfm" 1724614892 1656 68b5079c64f1cefe2cf442b6a60cf2fd "" + "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/inconsolata/Inconsolata-zi4r.pfb" 1558214095 55526 184de5d68af8c544d6d1653244a2b006 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb" 1354061736 548786 1e51d517556d29f2841d57da58668a69 "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb" 1354061736 687959 b99c9f5a9b28f3dba077d1c078bceb3f "" "/usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumTI.pfb" 1354061736 879384 e498f90c951041b56f91c0ffbf77a9d2 "" @@ -157,6 +160,7 @@ "/usr/local/texlive/2025/texmf-dist/tex/latex/hyperref/puenc.def" 1730838014 117112 7533bff456301d32e6d6356fad15f543 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/hyperxmp/hyperxmp.sty" 1710792253 62205 a7f89f92229cfedbace009eb0e06c099 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/ifmtarg/ifmtarg.sty" 1525197427 318 019510c713feab56160631df4423d2aa "" + "/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd" 1516054831 1021 03341d1cf7f388bbac1915f944d5d128 "" "/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/zi4.sty" 1558214095 4319 14e5db0b68d045ed49e4ed232b58e93f "" "/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e "" "/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 "" @@ -215,10 +219,10 @@ "diagram/TLBAccess.drawio.png" 1744196148.80543 77522 75367f218335fe386db852966a892e9b "" "diagram/bargraph.png" 1744196148.80607 74263 65509d21744edc6c9ca02b8c67d664fb "" "diagram/kmeans.png" 1744196148.80901 94217 5d14308c169ff296bf499805b9823aa6 "" - "paper.aux" 1744381309.20373 7953 abf8114744868342184253162a495cb1 "pdflatex" - "paper.bbl" 1744381307.99948 3371 e1ba8bd3501bd6b1af1d5ca27a21f4ec "bibtex paper" - "paper.out" 1744381309.20564 3691 57df4bceeaeac4f8a0aa4a6219c57ca6 "pdflatex" - "paper.tex" 1744381303.28585 80223 2a86dcc0a3a69b931e884068ae17bdcc "" + "paper.aux" 1744390569.9295 7959 ac3c307910c71eb8d23b97795748826d "pdflatex" + "paper.bbl" 1744390568.7256 3824 3a7d4db0e425f84ef7bb98164f0eac8f "bibtex paper" + "paper.out" 1744390569.93032 3686 15f71b74083c4eefc68ea70789a0645a "pdflatex" + "paper.tex" 1744390408.3819 80741 a3601392619340c3fa4fcbc30ca1b51c "" (generated) "paper.aux" "paper.log" diff --git a/docs/EuroSys/Paper/paper.fls b/docs/EuroSys/Paper/paper.fls index 1a38bf2..647afb4 100644 --- a/docs/EuroSys/Paper/paper.fls +++ b/docs/EuroSys/Paper/paper.fls @@ -524,8 +524,13 @@ INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinLibertineT INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinLibertineT-tlf-ot1--base.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.enc INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1.tfm +INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd +INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd +INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd +INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/inconsolata/t1-zi4r-4.tfm INPUT /usr/local/texlive/2025/texmf-dist/fonts/vf/public/libertine/LinBiolinumTI-tlf-t1.vf INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/public/libertine/LinBiolinumTI-tlf-t1--base.tfm +INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc INPUT ./diagram/bargraph.png INPUT ./diagram/bargraph.png INPUT ./diagram/bargraph.png @@ -548,6 +553,7 @@ INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-utf8.def INPUT paper.aux INPUT ./paper.out INPUT ./paper.out +INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/inconsolata/Inconsolata-zi4r.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/newtx/LibertineMathMI.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumT.pfb INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/libertine/LinBiolinumTB.pfb diff --git a/docs/EuroSys/Paper/paper.log b/docs/EuroSys/Paper/paper.log index ddf4bdb..cdc27eb 100644 --- a/docs/EuroSys/Paper/paper.log +++ b/docs/EuroSys/Paper/paper.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 11 APR 2025 15:21 +This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.4.2) 11 APR 2025 17:56 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -1332,10 +1332,6 @@ Underfull \vbox (badness 10000) has occurred while \output is active [] [3.3 <./diagram/HighOverviewArchitecture.drawio.png> <./diagram/AllocationOverv iew24.png>] - -Package natbib Warning: Citation `sec:FatPointerTranslations' on page 4 undefin -ed on input line 631. - Package hyperref Info: bookmark level for unknown algorithm defaults to 0 on in put line 645. LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/sc' will be @@ -1352,56 +1348,52 @@ LaTeX Font Info: Font shape `T1/LinuxLibertineT-TLF/m/n' will be nc}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/libertine/lbtn_oexx6f.en c} <./diagram/TLBAccess.drawio.png>] -Package natbib Warning: Citation `sec:Micro' on page 5 undefined on input line -736. - - -Package natbib Warning: Citation `sec:Macro' on page 5 undefined on input line -739. - - -Package natbib Warning: Citation `sec:Results' on page 5 undefined on input lin -e 743. - - - LaTeX Font Info: Font shape `T1/LinuxBiolinumT-TLF/m/it' will be -(Font) scaled to size 9.0pt on input line 832. +(Font) scaled to size 9.0pt on input line 833. +LaTeX Font Info: Trying to load font information for T1+zi4 on input line 83 +4. +(/usr/local/texlive/2025/texmf-dist/tex/latex/inconsolata/t1zi4.fd +File: t1zi4.fd 2018/01/14 T1/zi4 (Inconsolata) +) +LaTeX Font Info: Font shape `T1/zi4/m/n' will be +(Font) scaled to size 9.0pt on input line 834. +Package microtype Info: Loading generic protrusion settings for font family +(microtype) `zi4' (encoding: T1). +(microtype) For optimal results, create family-specific settings. +(microtype) See the microtype manual for details. -[5.5] - +[5.5{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/inconsolata/i4-t1-4.enc +}] + File: diagram/bargraph.png Graphic file (type png) -Package pdftex.def Info: diagram/bargraph.png used on input line 869. +Package pdftex.def Info: diagram/bargraph.png used on input line 877. (pdftex.def) Requested size: 455.6624pt x 284.78517pt. -Class acmart Warning: A possible image without description on input line 871. +Class acmart Warning: A possible image without description on input line 879. LaTeX Warning: `h' float specifier changed to `ht'. -Underfull \vbox (badness 2762) has occurred while \output is active [] - - [6.6] -<./diagram/kmeans.png, id=210, 1011.78pt x 578.16pt> +<./diagram/kmeans.png, id=219, 1011.78pt x 578.16pt> File: ./diagram/kmeans.png Graphic file (type png) -Package pdftex.def Info: ./diagram/kmeans.png used on input line 919. +Package pdftex.def Info: ./diagram/kmeans.png used on input line 927. (pdftex.def) Requested size: 265.2637pt x 151.57959pt. -Overfull \hbox (24.11621pt too wide) in paragraph at lines 919--920 +Overfull \hbox (24.11621pt too wide) in paragraph at lines 927--928 [][] [] -Class acmart Warning: A possible image without description on input line 921. +Class acmart Warning: A possible image without description on input line 929. Underfull \vbox (badness 10000) has occurred while \output is active [] @@ -1411,6 +1403,12 @@ Underfull \vbox (badness 10000) has occurred while \output is active [] [7.7 <./diagram/bargraph.png> <./diagram/kmeans.png>] +Overfull \hbox (1.21416pt too wide) in paragraph at lines 961--967 +\T1/LinuxLibertineT-TLF/m/n/9 (-20) page op-ti-miza-tions. Its de-sign ef-fec-t +ively re-duces TLB misses, achiev- + [] + + Underfull \vbox (badness 1895) has occurred while \output is active [] @@ -1425,9 +1423,6 @@ essTestMalloc/glibc-bench.c at ) -Package natbib Warning: There were undefined citations. - - Class acmart Warning: Some images may lack descriptions. @@ -1440,6 +1435,10 @@ Class acmart Warning: CCS concepts are mandatory for papers over two pages. + +Overfull \vbox (1.152pt too high) has occurred while \output is active [] + + (/usr/local/texlive/2025/texmf-dist/tex/generic/stringenc/se-pdfdoc.def File: se-pdfdoc.def 2019/11/29 v1.12 stringenc: PDFDocEncoding ) @@ -1452,30 +1451,31 @@ LaTeX2e <2024-11-01> patch level 2 L3 programming layer <2025-01-18> *********** Package rerunfilecheck Info: File `paper.out' has not changed. -(rerunfilecheck) Checksum: 57DF4BCEEAEAC4F8A0AA4A6219C57CA6;3691. +(rerunfilecheck) Checksum: 15F71B74083C4EEFC68EA70789A0645A;3686. ) Here is how much of TeX's memory you used: - 23996 strings out of 473190 - 393331 string characters out of 5715801 - 963706 words of memory out of 5000000 - 46171 multiletter control sequences out of 15000+600000 - 768930 words of font info for 446 fonts, out of 8000000 for 9000 + 24024 strings out of 473190 + 393754 string characters out of 5715801 + 965870 words of memory out of 5000000 + 46198 multiletter control sequences out of 15000+600000 + 768597 words of font info for 442 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 - 90i,17n,131p,1002b,824s stack positions out of 10000i,1000n,20000p,200000b,200000s - -Output written on paper.pdf (9 pages, 701176 bytes). + 90i,16n,131p,1002b,804s stack positions out of 10000i,1000n,20000p,200000b,200000s + +Output written on paper.pdf (9 pages, 714018 bytes). PDF statistics: - 296 PDF objects out of 1000 (max. 8388607) - 247 compressed objects within 3 object streams - 60 named destinations out of 1000 (max. 500000) - 114906 words of extra memory for PDF output out of 128383 (max. 10000000) + 310 PDF objects out of 1000 (max. 8388607) + 260 compressed objects within 3 object streams + 62 named destinations out of 1000 (max. 500000) + 115418 words of extra memory for PDF output out of 128383 (max. 10000000) diff --git a/docs/EuroSys/Paper/paper.pdf b/docs/EuroSys/Paper/paper.pdf index 28f313c..42525ed 100644 Binary files a/docs/EuroSys/Paper/paper.pdf and b/docs/EuroSys/Paper/paper.pdf differ diff --git a/docs/EuroSys/Paper/paper.tex b/docs/EuroSys/Paper/paper.tex index f00dba5..0d59ca3 100644 --- a/docs/EuroSys/Paper/paper.tex +++ b/docs/EuroSys/Paper/paper.tex @@ -628,7 +628,7 @@ on physically contigous memory. \section{Memory allocator design} \label{sec:MemoryAllocator} This section presents a straightforward memory allocator designed and implemented based on the -principles outlined FAT ~\cite{sec:FatPointerTranslations}. The allocator consists of three core functions: InitAlloc, +principles outlined FAT ~\ref{sec:FatPointerTranslations}. The allocator consists of three core functions: InitAlloc, malloc, and free. The InitAlloc function initializes the memory pool, setting up the necessary data structures and metadata required for efficient memory management. The malloc function is responsible for allocating a contiguous block of memory of a specified size, while the free @@ -716,9 +716,9 @@ applications and kernel-level operations. \section{Evaluation} \label{sec:Evaluation} -We conducted tests of the FAT Pointer-based range addresses against Jemalloc~\cite{jemalloc}, -the default memory allocator for CHERIBSD~\cite{cheribsd}, to assess the performance improvements -enabled by a CHERI-based huge page-aware allocator. Specifically, we evaluated +We conducted tests of the FAT memory allocator against Jemalloc~\cite{jemalloc}, +Jemalloc is the default memory allocator for CHERIBSD~\cite{cheribsd}, to assess the performance improvements +enabled by the FAT allocator. Specifically, we evaluated the reduction in TLB walks and misses and its impact on wall clock runtime. To comprehensively analyze the proposed allocator, we categorized benchmarks into @@ -733,14 +733,14 @@ the specific configurations, compiler options, and system environment tailored to benchmark the proposed allocator. This ensures consistency and repeatability in our results, providing a solid foundation for meaningful comparisons. -We further elaborated on the two classes of benchmarks executed. Micro benchmarks (section~\cite{sec:Micro}). +We further elaborated on the two classes of benchmarks executed. Micro benchmarks (section~\ref{sec:Micro}). focused on particular allocation and deallocation patterns, such as sequential and random memory accesses, to stress-test the allocator under controlled conditions. -Macro benchmarks (section~\cite{sec:Macro}) involved real-world applications, offering insights into how +Macro benchmarks (section~\ref{sec:Macro}) involved real-world applications, offering insights into how the allocator performs with complex memory allocation demands, large datasets, and varying execution contexts. -The results (section~\cite{sec:Results}) presents the outcomes of our benchmarks, highlighting key metrics +The results (section~\ref{sec:Results}) presents the outcomes of our benchmarks, highlighting key metrics such as TLB miss rates, memory usage, and runtime performance. We observed that the proposed allocator demonstrated significant improvements in reducing TLB misses, leading to noticeable enhancements in runtime efficiency for both micro and macro @@ -828,15 +828,16 @@ the proposed changes. The benchmarks~\cite{Benchmark} are classified into 2 classes: \subsubsection{Micro benchmark} - \label{sec:Micro} +\label{sec:Micro} + \begin{itemize} - \item GLIBC: The Glibc benchmark evaluates the performance of + \item \texttt{GLIBC}: The Glibc benchmark evaluates the performance of malloc and free functions in single-threaded, multi-threaded, and emulated multi-threading scenarios using various block sizes and allocation patterns. It simulates real-world memory usage by partially deallocating blocks in FIFO order and fully deallocating them in LIFO order. Results are gathered across configurations to analyze performance variations. - \item MemAccess: This benchmark by Alex Bordei evaluates the performance impact of + \item \texttt{MemAccess}: This benchmark by Alex Bordei evaluates the performance impact of memory access patterns by constructing and traversing a doubly linked list with varying working set sizes. It supports sequential or randomized structures, optional node operations, and multithreaded @@ -846,32 +847,39 @@ The benchmarks~\cite{Benchmark} are classified into 2 classes: \subsubsection{Macro benchmark} \label{sec:Macro} + \begin{itemize} -\item Kmeans: Kmeans implements a parallelized K-means clustering algorithm that +\item \texttt{Kmeans}: Kmeans implements a parallelized K-means clustering algorithm that assigns data points to clusters based on proximity to centroids, iteratively updating them until convergence. The computation is distributed across threads using the pthread library, dynamically assigning tasks to optimize performance. Parameters like data size and clusters are configurable, and the program ensures efficient memory management and synchronization. -\item Richards: Richards is a task scheduling benchmark that simulates a +\item \texttt{Richards}: Richards is a task scheduling benchmark that simulates a multitasking environment with tasks of varying types and priorities, communicating through queued packets. The schedule function manages task execution based on state and priority, tracking processed packets and held tasks for performance evaluation. Configurable iterations and timing help measure system performance and ensure correctness. +\item \texttt{BARNES}: Implements the Barnes-Hut algorithm to efficiently simulate the interactions within +an \(N\)-body system. A comprehensive overview of the Barnes-Hut method is provided by Singh in his doctoral +dissertation ~\cite{singh1993}. The implementation we benchmark extends the original method by permitting multiple +particles to be stored within each leaf cell of the spatial decomposition, enhancing performance and scalability. +This extension is described by Holt and Singh ~\cite{holt1995}. \end{itemize} \subsection{Results} \label{sec:Results} + \begin{figure*}[h] \includegraphics[width=.9\linewidth]{diagram/bargraph.png} \caption{\label{fig:bargraph}Percentage difference between the modified memory allocator against the default system memory allocator} \end{figure*} The graph (Figure \ref{fig:bargraph}) highlights the performance comparison between the modified memory allocator and -Jemalloc, the default memory allocator. The FAT pointer memory allocator, specifically optimized +Jemalloc, the default memory allocator. The FAT memory allocator, specifically optimized for use with huge pages, demonstrates a clear advantage in scenarios where memory allocation patterns benefit from its design. The results align with expectations, showcasing the impact of its capability to handle memory more efficiently by leveraging huge pages. @@ -884,7 +892,7 @@ of its capability to handle memory more efficiently by leveraging huge pages. reduction on L2 DTLB reads. This demonstrates that all the TLB translations are read at the L1 TLB cache. - \item L1 DTLB walks: Due to most of the TLB entries getting hit at the L1 DTLB there is no need + \item DTLB walks: Due to most of the TLB entries getting hit at the L1 DTLB there is no need to walk the TLB cache hierarchy. This is shown by an average of 99\% reduction in DTLB walks. \item L1 DTLB refills: Since there are lesser DTLB walks and most reads are done at the L1 DTLB @@ -921,7 +929,7 @@ bottlenecked by factors such as computation or I/O rather than memory translatio \end{figure} The K-means algorithm was executed with varying cluster sizes to evaluate the performance difference - between the FAT pointer allocator and the baseline allocator as the workload scales. This analysis + between the FAT allocator and Jemalloc as the workload scales. This analysis aims to understand how the allocator's optimizations, particularly its ability to manage memory more efficiently with huge pages, impact performance under different workload conditions. @@ -949,7 +957,8 @@ consistent performance benefits across most scenarios. \subsection{Analysis} \label{sec:Analysis} -The FAT pointer memory allocator demonstrates significant potential for enhancing + +The FAT memory allocator demonstrates significant potential for enhancing memory management in systems that benefit from huge page optimizations. Its design effectively reduces TLB misses, achieving up to 90\% fewer data TLB walks, L2 TLB reads, and TLB refills compared to Jemalloc. These improvements lead to noticeable performance diff --git a/docs/EuroSys/Paper/paperReferences.bib b/docs/EuroSys/Paper/paperReferences.bib index ba82ad9..b61adff 100644 --- a/docs/EuroSys/Paper/paperReferences.bib +++ b/docs/EuroSys/Paper/paperReferences.bib @@ -537,4 +537,21 @@ pages = {129–139}, numpages = {11} } +@phdthesis{singh1993, + author = {Singh, Jaswinder Pal}, + title = {Parallel Hierarchical N-body Methods and Their Implications for Multiprocessors}, + school = {Stanford University}, + year = {1993}, + month = feb, +} + +@inproceedings{holt1995, + author = {Holt, C. and Singh, Jaswinder Pal}, + title = {Hierarchical N-Body Methods on Shared Address Space Multiprocessors}, + booktitle = {SIAM Conference on Parallel Processing for Scientific Computing}, + year = {1995}, + note = {To appear}, + month = feb +} +