Discussion:
ALPHA_SE simulation problem. fatal: syscall set_tid_address (#411) unimplemented.
(too old to reply)
nathan binkert
2009-01-19 18:20:52 UTC
Permalink
M5 in SE mode doesn't support several of the system calls required for
implementing multithreading. To solve the problem, you need to
implement the system calls required by OpenMP. Also, depending on how
you want things to work, you might have to write a thread scheduler
for SE mode to load balance the CPUs. If you do any of this, please
share your patches.

Another alternative is to run M5 in Full System mode. If you do this,
you'll be running the linux kernel and get all of the system calls it
supplies.

Nate
I am trying to run Spec OMP in the APLHA_SE mode. I used the
pre-compiled cross-compile to compile the code of Spec OMP. When I
compile the code without -fopenmp flag, the code is not parallelized,
and the m5 simulator can execute them normally. However, When I
compile the code with -fopenmp flag, the compilation has no error, but
the m5 simulator would say "fatal: syscall set_tid_address (#411)
unimplemented." I have also tested a test program such as hello world.
It shows the same behavior. It seems that m5 can not execute the
compiled openmp code. How can I solve this problem?
Thanks in advance
sitos
_______________________________________________
m5-users mailing list
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
Sitos Lin
2009-01-19 18:15:15 UTC
Permalink
Hi all:
I am trying to run Spec OMP in the APLHA_SE mode. I used the
pre-compiled cross-compile to compile the code of Spec OMP. When I
compile the code without -fopenmp flag, the code is not parallelized,
and the m5 simulator can execute them normally. However, When I
compile the code with -fopenmp flag, the compilation has no error, but
the m5 simulator would say "fatal: syscall set_tid_address (#411)
unimplemented." I have also tested a test program such as hello world.
It shows the same behavior. It seems that m5 can not execute the
compiled openmp code. How can I solve this problem?
Thanks in advance
sitos
Isuru Herath
2009-01-20 18:29:48 UTC
Permalink
Dear Sitos,

Check the following link.

http://www.cs.virginia.edu/~jm6dg/fractal/smp.htm
and this forum post.
http://comments.gmane.org/gmane.comp.emulators.m5.users/3953

It might be helpful. to be honest, still I havent tried this. Hopefully within
coming two weeks will do.

regards,
Isuru
Sitos Lin
2009-02-07 06:04:46 UTC
Permalink
Hi Isuru,
I have checked these two links you gave me. However, the m5
multi-thread patch only support using its own APIs ("The
multi-threaded programs have to be coded with M5 thread APIs (included
in the patch"). It means that I need to rewrite SpecOMP to execute
them in m5-multithread. This costs a lot of effort. I will try other
easier approaches first. However, if all other approaches do not work,
I will try to rewrite SpecOMP by the M5 thread APIs.
regards,
sitos
Post by Isuru Herath
Dear Sitos,
Check the following link.
http://www.cs.virginia.edu/~jm6dg/fractal/smp.htm
and this forum post.
http://comments.gmane.org/gmane.comp.emulators.m5.users/3953
It might be helpful. to be honest, still I havent tried this. Hopefully within
coming two weeks will do.
regards,
Isuru
_______________________________________________
m5-users mailing list
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
Sitos Lin
2009-01-20 05:35:59 UTC
Permalink
Hi, Nathan:
Thank you for your response. I think that I have no ability to
implement the system calls. Therefore, I should try another
alternative. I have also tried to run M5 in full system mode. However,
when I put the executable binaries in the image and mount it in the
simulated system, the programs always suffer "Killed" or "Segmentation
fault". Not only the threaded executables encounters the problem, but
also non-threaded version. In fact, I can not execute any benchmark in
the SpecOMP in ALPHA full system simulation environment.

My steps are 1) compile the benchmarks of SpecOMP by the
pre-compiled cross-compiler for ALPHA obtained from M5 website. 2)
create a disk image and put the compiled binaries in the image. 3) run
a full system simulation by ALPHA_FS/m5.fast with the disk image
obtained from M5 website. 4) mount the benchmark image in the
simulated system. 5) run the binaries in the simulated system. There
is no error message in both the simulated system and M5 except
"Killed" and "Segmentation fault".

Does it mean that M5 full system simulation can not support OMP
threaded applications? Or I do something by mistake. How can I obtain
some additional error message besides "Killed" or "Segmentation fault"
to know what is wrong in the simulated system?

Thanks in advance.
sitos
Post by nathan binkert
M5 in SE mode doesn't support several of the system calls required for
implementing multithreading. To solve the problem, you need to
implement the system calls required by OpenMP. Also, depending on how
you want things to work, you might have to write a thread scheduler
for SE mode to load balance the CPUs. If you do any of this, please
share your patches.
Another alternative is to run M5 in Full System mode. If you do this,
you'll be running the linux kernel and get all of the system calls it
supplies.
Nate
I am trying to run Spec OMP in the APLHA_SE mode. I used the
pre-compiled cross-compile to compile the code of Spec OMP. When I
compile the code without -fopenmp flag, the code is not parallelized,
and the m5 simulator can execute them normally. However, When I
compile the code with -fopenmp flag, the compilation has no error, but
the m5 simulator would say "fatal: syscall set_tid_address (#411)
unimplemented." I have also tested a test program such as hello world.
It shows the same behavior. It seems that m5 can not execute the
compiled openmp code. How can I solve this problem?
Thanks in advance
sitos
_______________________________________________
m5-users mailing list
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
_______________________________________________
m5-users mailing list
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
Mona Jalal
2013-05-13 22:51:49 UTC
Permalink
Post by nathan binkert
M5 in SE mode doesn't support several of the system calls required for
implementing multithreading. To solve the problem, you need to
implement the system calls required by OpenMP. Also, depending on how
you want things to work, you might have to write a thread scheduler
for SE mode to load balance the CPUs. If you do any of this, please
share your patches.
Another alternative is to run M5 in Full System mode. If you do this,
you'll be running the linux kernel and get all of the system calls it
supplies.
Nate
On Mon, Jan 19, 2009 at 10:15 AM, Sitos Lin <sitos.lin <at> gmail.com>
I am trying to run Spec OMP in the APLHA_SE mode. I used the
pre-compiled cross-compile to compile the code of Spec OMP. When I
compile the code without -fopenmp flag, the code is not parallelized,
and the m5 simulator can execute them normally. However, When I
compile the code with -fopenmp flag, the compilation has no error, but
the m5 simulator would say "fatal: syscall set_tid_address (#411)
unimplemented." I have also tested a test program such as hello world.
It shows the same behavior. It seems that m5 can not execute the
compiled openmp code. How can I solve this problem?
Thanks in advance
sitos
_______________________________________________
m5-users mailing list
m5-users <at> m5sim.org
http://m5sim.org/cgi-bin/mailman/listinfo/m5-users
Hi Nate,

I was wondering if there's any patch released or if there's any solution
available? I am receiving the same error and I am running OpenMP binaries in
Gem5. I have found a patch for m5 not sure if it applies for gem5 as well or
not? http://www.cs.virginia.edu/~jm6dg/fractal/smp.htm (Do you suggest this
patch?)


./build/X86/gem5.opt ./configs/example/se.py --cpu-type=timing --num-cpus=8
--clock=4GHz --num-dirs=1 --l2_size=4MB --l1d_size=64kB --l1i_size=64kB --
num-l2caches=1 --l2_assoc=16 -c ./benchmarks/rodinia/bin/backprop -o 64
Global frequency set at 1000000000000 ticks per second
0: system.remote_gdb.listener: listening for remote gdb #0 on port 7008
0: system.remote_gdb.listener: listening for remote gdb #1 on port 7009
0: system.remote_gdb.listener: listening for remote gdb #2 on port 7010
0: system.remote_gdb.listener: listening for remote gdb #3 on port 7011
0: system.remote_gdb.listener: listening for remote gdb #4 on port 7012
0: system.remote_gdb.listener: listening for remote gdb #5 on port 7013
0: system.remote_gdb.listener: listening for remote gdb #6 on port 7014
0: system.remote_gdb.listener: listening for remote gdb #7 on port 7015
**** REAL SIMULATION ****
info: Entering event queue @ 0. Starting simulation...
fatal: syscall set_tid_address (#218) unimplemented.
@ cycle 51180000
[unimplementedFunc:build/X86/sim/syscall_emul.cc, line 83]
Memory Usage: 610712 KBytes


All the bests,
Mona Jalal.

Loading...