I *think* it's possible... At one point, I got c++ std::thread to work. I've never tried something as complex as parsec, though.
Jason On Fri, Apr 16, 2021 at 11:17 AM John Smith <jjsmith2...@gmail.com> wrote: > Does that mean I don't have to use m5threads and just use the regular > pthread library ? > > On Fri, Apr 16, 2021 at 2:13 PM Jason Lowe-Power <ja...@lowepower.com> > wrote: > >> Hi John, >> >> Yeah, it's something like that. We usually suggest using N + 1 cores >> where N is the number of threads. You can always use more ;). >> >> As a side note, if you configure things correctly (whatever that >> means...) I believe you can get pthreads to work. You can link to the >> pthreads on the host and I think gem5 can correctly execute that code. >> >> Cheers, >> Jason >> >> On Fri, Apr 16, 2021 at 10:42 AM John Smith <jjsmith2...@gmail.com> >> wrote: >> >>> That sounds great. In the meantime I will work a bit more on the SE mode. >>> Also do you have any inputs on the following ? >>> >>> m5threads: If there are 9 CPU, and the host CPU launches 9 threads, then >>> are 8 threads launched on the remaining 8 CPUs and the 9th thread has to >>> wait for a >>> thread to complete to begin execution. If not then where does it run as >>> all the 9 CPUs are currently running a thread (1 host + 8 threads). >>> >>> Thank you, >>> John Smith >>> >>> On Fri, Apr 16, 2021 at 12:58 PM Jason Lowe-Power <ja...@lowepower.com> >>> wrote: >>> >>>> Soon! https://gem5.atlassian.net/browse/GEM5-195 >>>> >>>> We're hopeful that in the next month or so all of this code will be >>>> public. >>>> >>>> Cheers, >>>> Jason >>>> >>>> On Fri, Apr 16, 2021 at 9:55 AM John Smith <jjsmith2...@gmail.com> >>>> wrote: >>>> >>>>> Will I also be able to run the GPU model in the FS mode ? >>>>> >>>>> On Fri, Apr 16, 2021 at 11:39 AM Jason Lowe-Power <ja...@lowepower.com> >>>>> wrote: >>>>> >>>>>> Hi John, >>>>>> >>>>>> I suggest using full system mode instead of SE mode if you're running >>>>>> a multithreaded workload. In FS mode, there's a full OS so it can handle >>>>>> thread switching, etc. For Parsec on x86 we've created a set of resources >>>>>> for you to get started. See >>>>>> https://gem5.googlesource.com/public/gem5-resources/+/refs/heads/stable/src/parsec/ >>>>>> for details. >>>>>> >>>>>> Cheers, >>>>>> Jason >>>>>> >>>>>> On Fri, Apr 16, 2021 at 8:07 AM John Smith via gem5-users < >>>>>> gem5-users@gem5.org> wrote: >>>>>> >>>>>>> Hi All, >>>>>>> >>>>>>> I am sorry for the confusion. >>>>>>> >>>>>>> I am looking to run a multithreaded application on a mesh of 3x3 >>>>>>> CPUs, where the benchmark spawns 9 threads and each thread runs on >>>>>>> a single CPU (1:1). I went through the past discussions on this >>>>>>> mailing list and saw that m5threads was needed to do this. I have some >>>>>>> questions. >>>>>>> >>>>>>> (1) If there are 9 CPU, and the host CPU launches 9 threads, then >>>>>>> are 8 threads launched on the remaining 8 CPUs and the 9th thread has to >>>>>>> wait for a >>>>>>> thread to complete to begin execution. If not then where does it run >>>>>>> as all the 9 CPUs are currently running a thread (1 host + 8 threads). >>>>>>> >>>>>>> (2) Anthony Gutierrez said that m5threads is no longer needed. Is >>>>>>> that correct for gem5-21 ? >>>>>>> (Subject: Simulating multiprogrammed & multithreaded workloads >>>>>>> in SE mode?) >>>>>>> >>>>>>> (3) Right now I am trying to build PARSEC 3.0 benchmarks with >>>>>>> m5threads, but I am receiving some errors as follows and I am not sure >>>>>>> why: >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> *base_dir/local/gcc/bin/gcc -O3 -g -funroll-loops >>>>>>> -fprefetch-loop-arrays base_dir/gem5dev/parsec-3.0/pkgs/pthread.o >>>>>>> -static-libgcc -Wl,--hash-style=both -Wl,--as-needed >>>>>>> -DPARSEC_VERSION=3.0-beta-20150206 -o siman_tsp siman_tsp.o -L >>>>>>> base_dir/local/gcc/lib64 -L base_dir/local/gcc/lib ./.libs/libgslsiman.a >>>>>>> ../rng/.libs/libgslrng.a ../ieee-utils/.libs/libgslieeeutils.a >>>>>>> ../err/.libs/libgslerr.a ../sys/.libs/libgslsys.a >>>>>>> ../utils/.libs/libutils.a >>>>>>> -lpthread -lmbase_dir/gem5dev/parsec-3.0/pkgs/pthread.o: In function >>>>>>> `__pthread_initialize_minimal':pthread.c:(.text+0x97): undefined >>>>>>> reference >>>>>>> to `_dl_phdr'pthread.c:(.text+0xd9): undefined reference to `_dl_phnum'* >>>>>>> >>>>>>> Generally how should I go about integrating the m5thread with any >>>>>>> benchmark? >>>>>>> >>>>>>> (4) Also, what other CPU benchmarks are recommended which are >>>>>>> multithreaded and can be run in a manner where I can >>>>>>> launch a thread on each CPU ? >>>>>>> >>>>>>> Thank You, >>>>>>> John Smith >>>>>>> >>>>>>> <https://www.mail-archive.com/search?l=gem5-users@gem5.org&q=from:%22Gutierrez%2C+Anthony%22> >>>>>>> >>>>>>> On Fri, Apr 16, 2021 at 1:50 AM Gabe Black via gem5-users < >>>>>>> gem5-users@gem5.org> wrote: >>>>>>> >>>>>>>> That's essentially right, although gem5 does have some plumbing to >>>>>>>> run multiple event queues within the same simulation which can >>>>>>>> coordinate >>>>>>>> with each other within a small window (quantum) of time. gem5 has >>>>>>>> support >>>>>>>> for fibers/threads/coroutines, but these are not typically used to >>>>>>>> model >>>>>>>> events. Events are processed inline when they happen using a simple >>>>>>>> function call. >>>>>>>> >>>>>>>> Gabe >>>>>>>> >>>>>>>> On Thu, Apr 15, 2021 at 2:46 AM gabriel.busnot--- via gem5-users < >>>>>>>> gem5-users@gem5.org> wrote: >>>>>>>> >>>>>>>>> Hi John, >>>>>>>>> >>>>>>>>> Short answer : no, you can only run several simulations in >>>>>>>>> parallel, but not a single simulation using one thread per CPU. >>>>>>>>> >>>>>>>>> Gem5 relies on Discrete Event Simulation (DES) to simulate the >>>>>>>>> concurrent behavior of HW. >>>>>>>>> DES is intrinsically sequential in its execution as it relies on >>>>>>>>> coroutines (also called user user threads, greed threads, fibers, >>>>>>>>> etc.). >>>>>>>>> Parallelizing such application is a very hard task that often >>>>>>>>> requires a lot of subtle code transformations to efficiently protect >>>>>>>>> shared >>>>>>>>> resources. >>>>>>>>> If done correctly, then parallel DES does not have all the good >>>>>>>>> properties of classic DES, especially determinism... Unless you add >>>>>>>>> extra >>>>>>>>> care to preserve it, which is hard, too. Trust me ;). >>>>>>>>> >>>>>>>>> This question has been discussed back in the days but seems >>>>>>>>> stalled now: http://www.m5sim.org/Parallel_M5 >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Gabriel >>>>>>>>> _______________________________________________ >>>>>>>>> gem5-users mailing list -- gem5-users@gem5.org >>>>>>>>> To unsubscribe send an email to gem5-users-le...@gem5.org >>>>>>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >>>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> gem5-users mailing list -- gem5-users@gem5.org >>>>>>>> To unsubscribe send an email to gem5-users-le...@gem5.org >>>>>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >>>>>>> >>>>>>> _______________________________________________ >>>>>>> gem5-users mailing list -- gem5-users@gem5.org >>>>>>> To unsubscribe send an email to gem5-users-le...@gem5.org >>>>>>> %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s >>>>>> >>>>>>
_______________________________________________ gem5-users mailing list -- gem5-users@gem5.org To unsubscribe send an email to gem5-users-le...@gem5.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s