From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,dc1b7d7417552349 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-10-30 06:52:52 PST Newsgroups: comp.lang.ada Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!nntp.abs.net!uunet!dca.uu.net!ash.uu.net!xyzzy!nntp From: "Dale Pennington" Subject: Re: Parallel execution on SGI with GNAT X-Nntp-Posting-Host: e264771.se.nos.boeing.com Message-ID: X-Mimeole: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Priority: 3 X-Msmail-Priority: Normal Sender: nntp@news.boeing.com (Boeing NNTP News Access) Organization: The Boeing Company X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 References: <3BDDD7EC.EC896675@dfrc.nasa.gov> Date: Tue, 30 Oct 2001 14:11:57 GMT Xref: archiver1.google.com comp.lang.ada:15412 Date: 2001-10-30T14:11:57+00:00 List-Id: You probably want to add a call the pthread_setconcurrancy into your program. GNAT runs on top of pthreads in IRIX 6.5, and SGIs pthreads implementation does not do a good job of setting the number of kernel vehicles for user level programs. "Jay Fantini" wrote in message news:3BDDD7EC.EC896675@dfrc.nasa.gov... > ---------------------------------------------------------------------------- ---- > Ada experts, > > Maybe you can help me: I am trying to get the following program to execute > on a 6-CPU SGI ONYX-2 R12000 based system. The system is running IRIX 6.5 > and I am using GNAT Ada-95 version 3.11p for SGI. The program does compile > and run but it only uses 1 CPU and I would like for it to execute on 3 CPUs. > This program is a prototype for a much larger program. > > Do I need to set an environment variable or am I using the wrong Ada-95 > construct? Is there a PRAGMA I should use? Please post all answers to this NG. > > TIA, > > -Jay > > -- ****************************************************************** > > with text_io; > with integer_text_io; > with tems_floating_point_std; > with floating_point_math_lib; > with fp_display; > with higher_functions; > with wexzal; > > use tems_floating_point_std; > use floating_point_math_lib; > use higher_functions; > use wexzal; > > procedure hog is > > task type wzlsum(upper_limit: integer); > task body wzlsum is > x :floating_point; > s :floating_point; > begin > for i in 1..upper_limit loop > x:=floating_point(i); > s:=s+1.0/(x*wzl(x)); > end loop; > text_io.put("Sum for n="); > integer_text_io.put(upper_limit); > text_io.put(" is S="); > fp_display.prt(s); > text_io.new_line; > end wzlsum; > > cpu_hog_5 :wzlsum(5000000); -- Do big calculation in parallel > cpu_hog_4 :wzlsum(4000000); > cpu_hog_3 :wzlsum(3000000); > > begin > text_io.put_line("Program HOG is done!"); > end hog; >