rustw#rustc 1.72.0 (5680fa18f 2023-08-23) }ޱL{ :-8f88c761e33f2651ՆQ4-46a989d0e2cef827e$ɛDp>-b114db70ea0690b1rustc_std_workspace_core ūu sR-13da980d6c74fec5YnFmZܝ--649be05783c8912epWĪ9/-f002c8f83a289c4b &c~~*ĽVa-682387162b570769cfg_ifz$kdgK!--05a2cedbb78c1d4f miniz_oxidePnzn )m-9c3df673b2797081adlerA%lon  2-c6afbee8d1102512 hashbrown8*^| -356231f77d1e268arustc_std_workspace_allocL%gqG-80ed5799bf463787 std_detecta^Ʒc -1bccb7a942e1b311rustc_demanglekŗ,N/ST%L)-bc6864da821ce9a2 addr2line2Ȃ']51:.-4930b3dc482158f7gimli~2)F25˼-65bea4bb6af40828object^]UVW-919f89587cbed68dmemchrk/YO+-c6624cb4360306cdBhnge],Q-f9018f9cee1cc5ffb5Xܤ*-7210a355a56b809e hermit_abi    hermit   testsMMMM MMM get_num_physical_cpus   linux          macos    openbsd     aix        get_num_physical_cpus_windows!!!!  !   ! !! get_num_cpus0 /// /// 6 55555  5 freebsd5 55  5  dragonfly6 56  6 netbsd665]5e ; ;;;  ;   ; ;; @@@@  @   @ @@ EEEE  E   EEE JJJJ  J   JJJget_smt_threads_aixLKKK  K   KKK O MMMMM  M naclMMM  M   MMN  N iosNNN  N androidN NN  N   NNN  N solarisN NN  N illumosN NO  O fuchsiaO OMM S SSS  S haikuSSS ^ ^^^  ^ ^^^ b _______  _ ___  _   ___  _ ___  _ ` _`  `   ```  ` ` ``  ` ` ``  ` ` ``  `   a`a  a   a aa  a a aa  a a aa  a aaa  a bab  b bbb bb___bbbb bbb        some  logical_cpus    CGROUPS_CPUScgroups_num_cpusONCE init_cgroups load_cgroupsP1P2Cgroup" "base MountInfo% %root% mount_pointSubsys) )",, translate, cpu_quota,quota_us, period_us,max,param, raw_param5load_cpu6P6 6 5 parse_line: : =#>#> > =#B B get get_physical CgroupVersionJV1K JV2M OQU X2 2 /707172737374747P7P7P7R7V7V7Y7GJKL$MN%/<99'''''''XJTJOJWJQJUJSJ#G   B888 *&j5d9e <[Zd    {-P(      'w()) *      + + * +++++, ++ acccores&&\vD?,JJ. J&.211Once1inner1 LOF++/+2/)3243 >!% ))"* +">Q ߂23'3 6! #3 - 13  +  -  4,13 4 G4,% ! GvalueG formatterG1 2 7e !   !   5 ! ! G  % ! 5   &% 5 +3   %%"& '"("6p442 " . !" / 133 /4.1344. # ! 5 ! !5 ! !6# ! 5 6'# 5 +"!  !!#!# """!# $"І; z@ "+  /+   1  133  &14#0#134##40*!## !) 5*# !()# !'(5# !# !6&'%!# !" 5" 6%$(!" 5  +!424223!%#4# %2%"3$ 5 5" 5  P  5 {-P+ 1 32 {-P22+ 5IpiecesEEE4&w\NF !4 5 ! 5+ !F !57 {-P733'E7+ 5E !4 5 !F !F !5< {-P<"72E < +" 5E# !4  5# !F# !F# !5# <43 43 4#3   cgroup_proc mountinfo_procsubsys-mntinfo-cgroup- "Subsys::load_cpu(cgroup_proc)444  4 NONE: 4  4  3 4  3MountInfo::load_cpu(mountinfo_proc, subsys.version)33444  4 NONE: 4  4  3 4  $$"Cgroup::translate(mntinfo, subsys)""4##4#4$#   4  NONE: 4   4    3  4    &&R&'& '&&&(  (  ( (V( ( ( ( T( T( E( E( ( (  __self_tag(  __arg1_tag( ( )Y)+)T))). . _+... B+ͬͬ ParseIntErrorάWdC3..Z.C.Z 4C+.4.   'w+W. quota..//W///W//[/C/[XX+/4/Y/period//3333  #333 B.ɵ)33 ghh 3g\ggg44444 \ 4g g 6\3g  4jj6\4jj4jj ! 5j ! j !  5j !j !6  j !i 5i 6  i 5g 755544 4  BufReaderbuf._~k\ 44:4  9??Lines?a 9;a(8\**+c 4 4i4  9ǻǻ FilterMapʻ*˻*Aubc7 :4d 4!45*5* 9\*  7T45 :ǻǻbʻ*˻*Aucd9\*de5055555255623g 3F3\3 '3\3 {-P\3   'w\)3Eg\g+i 5Ej !4g 5j !Fj !Fj !5ja4\4 e4e4ic4:b4 a4e5*T5*4j3g 5 proc_path3  33-g42kkFile::open(proc_path).ok()4jj624j4kjg  4g NONE: 4g  4g g 623g 4g g 4 4(4484)4 c4*4 445'5T55 ''5595*5 e5* 75 T5T5* mount_info5  3T5* _ref__version<<<<;4<< 44<<;< << ;*  4+< 4<4<4<4< << <<-4<<;<4<4<<BBB<qrr4B B rB B<BB <* X+B4B4B4BoptBBBBcpu4BB<B4B4BBDDDD \DDE\ED {|| D{\{{{EEEEE^ E{ { >\3{  4~~>\4~~4~~ ! 5~ !  ~ !  5~ !~ !6  ~ !} 5} 6  } 5{ 2HHHEE Ea EE:E  9b(@\**+} E EfF  9ǻǻbʻ*˻*Aub}2 BF~ FF 2EF :ǻǻbʻ*˻*Au~~DA\* D2D+FHHHHDHH>DD{ EDD\D \DgDhDE{\{+} 5E~ !4{ 5~ !F~ !F~ !5~aE\EEf~E:bE aEDF4~3{ HjD D-{EDFile::open(proc_path).ok()4~~>D4~4~{  4{ NONE: 4{  4{ { >D3{ 4{ { E E(EF@E)E }E*E EE Gs GsGs GsGGG >2 G G7G7G7G 'G GA\pqqTG!G!o  G!G7G7G7G7H HHH H H  2 HHH FH H  AF DF FDF2FG7G DGG!TG 2HTGHpreviousFFFG JGGAFTG'GGLLLCqrr4L L rL LCLL C*v+L4L4L4L LLLLcpu4LLCL4L4LLLTLMM M LS )MDLZ2LDX X2eLZ4L'L(MTLZL JTLZp  H,+, I>+>HI   F  GhH A crate with utilities to determine the number of CPUs available on theK current system.L`U Sometimes the CPU will exaggerate the number of CPUs it contains, because it can usedXW [processor tricks] to deliver increased performance when there are more threads. This ZN crate provides methods to get both the logical and physical numbers of cores.QR This information can be used as a guide to how many tasks can be run in parallel.US There are many properties of the system architecture that will affect parallelism,VO for example memory access speeds (for all the caches and RAM) and the physicalRU architecture of the processor, so the number of CPUs should be used as a rough guideX only.  ## Examples" Fetch the number of logical CPUs.% ``` let cpus = num_cpus::get();N See [`rayon::Threadpool`] for an example of where the number of CPUs could beQN used when setting up parallel jobs (Where the threadpool example uses a fixedQ, number 8, it could use the number of CPUs)./N [processor tricks]: https://en.wikipedia.org/wiki/Simultaneous_multithreadingQN [`rayon::ThreadPool`]: https://docs.rs/rayon/1.*/rayon/struct.ThreadPool.htmlQHI   F  G           "%)J,BufRead@`I  ReadT memd  y( '\ .1# ,6#@@I I TT_dmyy*         println         - -    NONE: {:?}         +Ɠ +  ' + pqq*pqq,  .&C / + } 13C! !! !131(((.&9c!o  3  13J J <І; z@#$""' ""'''.&"Q ߂*+  ))'  ))(! <-./01234!6!'<,, - !dir!"B" 72H,,9K"J"'$' \7 \7<C,',='+#+]7 ]7<C,+, 0+,$, ^7 ^7<C,,, 1,,',_7 _7< {-P++,,, 2,/-/`7a7 `7< a7C,/, 3/#/020 b7c7 b7< c7),0, 40#0276:2V2\'F5#775\2\2  6\j3  32246p8q8q886c5 6p9q9q996e505 (F55d5<:p;q;q;;:sB:p<q<q<<:vD 2>BD;D\D=#??=DȻD  >\jD DDE>p@q@q@@>}F>pAqAqAA>H-H (D==~HLBpCqCqCCBǏLBpDqDqDDB ,  < Returns the number of available CPUs of the current system. ? ` This function will get the number of logical cores. Sometimes this is different from the number cI of physical cores (See [Simultaneous multithreading on Wikipedia][smt]). L & This will always return at least `1`. ) # Examples if cpus > 1 {A println!("We are on a multicore system with {} CPUs", cpus);D } else { 0 println!("We are on a single core system");3 } # Note Y This will check [sched affinity] on Linux, showing a lower number of CPUs if the current\8 thread does not have access to all the computer's CPUs.;V This will also check [cgroups], frequently used in containers to constrain CPU usage.YA [smt]: https://en.wikipedia.org/wiki/Simultaneous_multithreadingDV [sched affinity]: http://www.gnu.org/software/libc/manual/html_node/CPU-Affinity.htmlYJ [cgroups]: https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txtM+ H< Returns the number of physical cores of the current system.?) I Physical count is supported only on Linux, mac OS and Windows platforms.LK On other platforms, or if the physical count fails on supported platforms,NL this function returns the same as [`get()`], which is the number of logicalO CPUS. $ let logical_cpus = num_cpus::get();'. let physical_cpus = num_cpus::get_physical();1" if logical_cpus > physical_cpus {%E println!("We have simultaneous multithreading with about {:.2} \H3 logical cores to 1 physical core.", 6? (logical_cpus as f64) / (physical_cpus as f64));B* } else if logical_cpus == physical_cpus {-I println!("Either we don't have simultaneous multithreading, or our \LM system doesn't support getting the number of physical CPUs.");P [ println!("We have less logical CPUs than physical CPUs, maybe we only have access to \^1 some of the CPUs on our system.");4 [`get()`]: fn.get.html + I '/<99KLMNLNJJ'JJ'JJ'JJ'%%% %)'P%%d7e7f7 d7' e7GGGEGEGEG EGEGaEQ ! >Sf7   'w+ z*O%O P%&&& &*'R&&g7 g7''Q&Q R''' '+'( ( (  ( ,'( ( (  ( ,'V( ( h7i7 h7' i7'U(U V ( ))) )-'))) )-'Y))) )) )))) ))j7 j7'+X)X Y.2pZqZqZZ2X/2p[q[q[[2['+,,//00%%%&((),5=Chttp://www.gnu.org/software/libc/manual/html_node/CPU-Affinity.html9https://en.wikipedia.org/wiki/Simultaneous_multithreading6https://docs.rs/rayon/1.*/rayon/struct.ThreadPool.html>https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt fn.get.html'#̃xLd'#̃xLBS )ѭ'#̃xLa+'#̃xL ߪԭ'#̃xL#O{ru'#̃xL`=z'#̃xLzns'#̃xL'#̃xLe'#̃xLX٢qg'#̃xL4Dz:*J'#̃xLc('#̃xLV8Q['#̃xL{Z3'#̃xL>X'#̃xL!G'#̃xL!x'#̃xLś9,ޭ'#̃xL R'#̃xLpӭ'#̃xLEB ;'#̃xL D0;'#̃xL+X'#̃xL \X'#̃xLNo['#̃xLuz!'#̃xLyd&d '#̃xLæ '#̃xLǴ9x'#̃xLY^`c'#̃xLv~B'#̃xL<.'#̃xL5֛ p{'#̃xL'Ww%'#̃xL6ѧZ'#̃xL(#֭'#̃xLm\O3>'#̃xLɍD'#̃xLCDAV'#̃xL^=+˔'#̃xLl]'#̃xL7<6ǭ'#̃xLM'#̃xLu-$4+'#̃xL`ї'#̃xL0'#̃xL$ѽ\^'#̃xL&QUۭ'#̃xLJ_'#̃xLO!SG'#̃xL^PUi'#̃xL獝'#̃xLYq'#̃xLA\}tfN^'#̃xL)D'#̃xLĥRh'#̃xLB/'#̃xLDs'#̃xLnGN'#̃xL_r'#̃xL%5j^ImY'#̃xL'GMy'#̃xL6xPM'#̃xLbnӭ'#̃xLmZ-{6'#̃xLA'#̃xL6?'#̃xL1l3h'#̃xLkKZ]}ҭ'#̃xL'#̃xLR8/'#̃xL z^A'#̃xL*ߴY^'#̃xL?~#'A'#̃xL(}-'#̃xL8aKo0M'#̃xL{<^'#̃xL$)d)<'#̃xL,>$7'#̃xL3p'#̃xL$ o x'#̃xL!vܱN'#̃xLZVM-'#̃xLVFsϙ'#̃xLq_~v'#̃xLԝ؟'#̃xL҉.-'#̃xLj['#̃xL`P '#̃xL= {'#̃xL!cj'#̃xLbl[!'#̃xLmKO'i;3'#̃xL- ?'#̃xLn=2'#̃xL{5z-ᵭ'#̃xLR@'#̃xL6cxA'#̃xLxĭ'#̃xLd5 n'#̃xL;­'#̃xLt2cG>'#̃xL87-pέ'#̃xLKbݭ'#̃xLX212}'#̃xL2qS]'#̃xL[,^XpppOP HJLPRRSrUUUUBVVVVW4W>XnXXXYY:YWYYYYY,ZtZZ[n[\t\\\]]^W^^^^p___5`z``ekKkkklXmmmnHn}nnoSopEpOP 3kfXXYY\^>kEk lmnBnvnoLo%%      $$OPXRSUUUVVVWHWFXtXXXY#Y@Y_YYYY@ZZZ.[[\\ ].^ _ `ejkSk~kkk(lmnoBJ2P6P:PFPQQQQQQQQR RRR(R4R@RLRSlUUUUnrnnoHoo9p}pUUU VPVVVV!WWWX.XHXvXXXY%YBYaYYYYZMZZZI[[F\\\]]]]9^e^^^_`_~__`C``ejkUkkkkl*m{mmn7nknn oAoopSpUUU:V~VVVV*WWQXXXXY2YOYjYYYY ZZZZ[\[[Y\\\]]]^F^^^^D___$`q``ek#kbkkkk l=mmm n@ntnnoJoo=ppUUUVWJWHXXaYYBZZZ0[[\\]0^ _`ejkUkkkk)lmnoUUUVWLWYBZZZ0[[\\]0^ _`ej)lmnoxUUUUBVVVV W:WY2ZzZZ [t[ \z\\]] ^W^^^p___5`z`ejpkklmnopEp.`gnu!X7X]i_Wj-6/788:m;BqCFH1IIt))*3+,sUq%y5-7&89:AoCQFG,III)*1+,h-Vr%z5.7789:ApCRFG0III)*2+,i-UUUV.WWZ\ZZ [`[[]\\d]H^K_&`e kAmmno#  OP>XXWYY\^kKkkkwmm3ngn o=o_XXxY1kSXXlY%k"&*.26:>BFJNRYdk~)0;MZahls &*.59=AEISfz "(aXXzY7k>kZRSp/4ZZZSplitInclusiveZ X 4yLinesMap I+:(+7+4+\_ +MMM ,+<< RandomState<k0<k1~%666Global 7C\ w ,+M*2ǻǻbʻ*˻*Aub@4**+~DA4*+*(bD*(2D~* D(D~*(b**(b84**++* (7+l c uty7+d:794*de* +7* +( d*7ǻǻbʻ*˻*Aubd+MA+G  Cell 4L~ m ++  GGKeyG.GG dtor_stateG+o,+4W2*  11 OnceState1.3x5 +  {-P X  +^X + {-P  {-P,+,+ 4aaX  444a040bW`(   'w+) aQQQStderrQ Q I%4rY >>Custom>>errornsʗҷX  +Box  l*X +X+\aaaX\\ \G^XGGGG55( ((((4'22* X+9+@@@AssertUnwindSafeA R:e_0*9+9+C+++ +GAdapter.4'G   | | RawTableInner ~ bucket_mask  ctrl   growth_left  items   m*]ϦH&**XOs Simple  SimpleMessage  g  l*  MaybeUninituninit 4 ?+˼<b    hash_builder table XП+9I,+  l* {-P*   'w+  l*ǻǻbʻ*˻*Aub*  ScopeGuard dropfn 4 %m] *  +   TableLayout     ctrl_align eJP:    4 %m]  *  + {-P  ++ǻǻbʻ*˻*Aud\+Guarda3qY .()<2IIII I O7.34%%OwnedFd%fd%p'c[TTBufT.8FߡSSSFileDescS H Ҩ###RawVec&'cap(ܜ 4Repr   /Q  IntoIter . 2?4+[?4+XB\)BBBBStripPrefixErrorB & ,PB+WB+)B()C;;; AccessError !B bb߇grE3 LayoutError ډRS9}888CapacityOverflow8 AllocError8layout8c%/SX +BNonNull#CC8f _/G88TryReserveError8~E`TX Ћ B+ЋZX Ћ+ACCGGG, ,,(\(?+54QTXSXي+ZXȌ+7<LK?688+P6I Sip13Rounds *YIXX+ ,5 CxKĮ+ ,a\\  5+ , ,7+4+(+4+7+(+\Z , , ,+  ,  ,,+  ,+ p, o, , , , , , , , , ,+Ɣ , +  , , ,,+ ,* +   , , ,  *    *          , $o} ,((^h&" $!akk)%%p~~{_i -))*&& " '##qn|`jjg($$%!# +'' p{Y '#̃xL#9ѭE{$'#̃xL؁lFmcore_intrinsicsderive_clone_copy'#̃xLX))X ' Y '#̃xL}׻$ $'#̃xLX=]!print_internals  '#̃xLTF$crate::format_args_nl !Y fmt_internals'#̃xL ⻉ |'#̃xLHU`fs D!'#̃xLߞ,~Z^h  '#̃xLDh'#̃xL/^!'#̃xLn`^k#,Y)'#̃xL$'2Z` $'#̃xLHhG\'#̃xLjKbn|  '#̃xL0O =\ߜ '#̃xLGY4k}pߜfmt_helpers_for_deriveGG'#̃xL'rv&H%!  '#̃xLl$uV˞" !Y'#̃xL~?V Y '#̃xLn U?$'#̃xL [t ` G7'#̃xL8܃ ˞_i !Y'#̃xLIz~'#̃xLmwF  :'#̃xLV'nu)˞o} !Y'#̃xLpF۷m}O \ߜ derive_eq '#̃xLadi%dߜ'#̃xL‘Me˞&" !Y'#̃xL^o2QN #Y '#̃xLW C8$'#̃xLL+ g$'#̃xLI흽&M< `gY '#̃xL?,   '#̃xL)7 3!'#̃xLe( I'#̃xL5L )'#̃xLZV{cn|!%!^hhP6-$> }tapXyiGv-`H/c2nF4x@]R.0MP8S"^6$hqfBODHT k'#̃xL6ѧZ"'#̃xL7<6)'#̃xLX٢qg '#̃xLp'#̃xL ߪ'#̃xL5֛ p{ '#̃xLCDAV&'#̃xLX212}h'#̃xLd'#̃xLv~B'#̃xL1l3hC'#̃xLEB ;'#̃xL+X'#̃xL`P X'#̃xL'#̃xLu-$4++'#̃xLAA'#̃xLDs9'#̃xLc( '#̃xL{<^L'#̃xLɍD%'#̃xL{5z-_'#̃xLԝ؟U'#̃xL$ o xP'#̃xL6cxAa'#̃xL;d'#̃xL?~#'AI'#̃xL^=+˔''#̃xLyd&d '#̃xLmKO'i;3\'#̃xLd5 nc'#̃xLVFsϙS'#̃xL(##'#̃xLmZ-{6@'#̃xL<.'#̃xL_r;'#̃xL`ї,'#̃xLR8/F'#̃xLnGN:'#̃xL{Z3 '#̃xLm\O3>$'#̃xLB/8'#̃xL6?B'#̃xL(}-J'#̃xL R'#̃xLæ '#̃xLś9,'#̃xLV8Q[ '#̃xLe'#̃xL`=z'#̃xLE'#̃xL z^AG'#̃xL3pO'#̃xLq_~vT'#̃xL҉.-V'#̃xL- ?]'#̃xL)D6'#̃xLYq4'#̃xLn=2^'#̃xL87-pf'#̃xL[,^Xj'#̃xL,>$7N'#̃xLJ_0'#̃xLxb'#̃xL'GMy='#̃xLNo['#̃xL&QU/'#̃xLO!SG1'#̃xL2qS]i'#̃xL^PUi2'#̃xLZVM-R'#̃xL= {Y'#̃xL>X'#̃xLY^`c'#̃xLuz!'#̃xL'Ww%!'#̃xL!G'#̃xL \X'#̃xLǴ9x'#̃xL$ѽ\^.'#̃xL%5j^ImY<'#̃xLkKZ]}D'#̃xL*ߴY^H'#̃xL!vܱNQ'#̃xL$)d)'#̃xLj[W'#̃xLbl[!['#̃xLA\}tfN^5'#̃xLt2cG>e'#̃xLKbg'#̃xL4Dz:*J '#̃xLBS )'#̃xL#O{ru'#̃xLR@`-c3ij=M> ^4[HR9U/EZTK a JYvLk`GKLG^q}qo_uur DZx8g\yb-mJ 4 1KC, ]/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/src/lib.rs V})I9XphLY[RVWSY & RR0RR# 2@dM* E 4 ]<ZEZN @* MOP (2&I7C.MQ _5 ! &"&,6E%*#2+==2 KU-Y+D6 U+ %%HM %..(#&!: ;%.!#"$6 J;+8=*  $6= ,9>+&$67 ,9>+&6E0 9BG4(# &"+ ,, E:>?C?4 ##"$ !"=BB! @:B 1  6C  8 $  )A $ s]%Qt_/home/steffen/.cargo/registry/src/index.crates.io-6f17d22bba15001f/num_cpus-1.16.0/src/linux.rs Oy 3{shh) 0 " 6 ! =a 15  I *3)'"B&:D "")! "(! ' H )>K)0"5 "=`U &55N7N<-=/IA>; ]6(;"1+9T4 , CKC*'+(.4<LO40 9F%3]6)./>7*z-z.5LBzN+! z,12 2*~33@ '/ B6).,+\M%4*02 ] *#  F(ANL0!% #-:R,L(CR,L*DR,L  7:*; !N&*&0&*'0&*,6EKN&*0I+0'5&0)R<. %Z5 4a252 *Z5  F(AOM0!% #-:R,@  7:*; &=:*; !N&*&0&*'0&*,6EKN&*0I+0'5&0)R<. %Z5 4a8)2 *Z5  |VWYUUzx86_64-unknown-linux-gnu9~*gT1num_cpus-b0cb8786c0b38c00'#̃xLZ Z ((kkxxY\YZ\ZZZZXZX\