public inbox for fortran@gcc.gnu.org
 help / color / mirror / Atom feed
* [patch, coarray_native, committed] Increase initial size on Darwin
@ 2021-01-17 19:13 Thomas Koenig
  0 siblings, 0 replies; 4+ messages in thread
From: Thomas Koenig @ 2021-01-17 19:13 UTC (permalink / raw)
  To: fortran, gcc-patches

[-- Attachment #1: Type: text/plain, Size: 801 bytes --]

Hello world,

the patch (committed after Nicolas' OK) should make it possible
to go one step further in testing with Darwin.

So, it might now be possible to do another round of testing,
to see if there are any other walls to hit :-)

Best regards

	Thomas

Use an initial shared memory size of 256 GB on Apple.

This implements an idea that Nicolas had to overcome the Darwin
problem that it is not possible to extend a shared memory segment
on that system.

The remedy is simple: Use a memory segment that is larger than
what can reasonably be used. This should only waste a few page
table entries, while providing the functionality, at least for
further testing.

libgfortran/ChangeLog:

         * caf_shared/shared_memory.c (shared_memory_init): On Apple,
         use an initial size of 256 GB.

[-- Attachment #2: p.txt --]
[-- Type: text/plain, Size: 743 bytes --]

diff --git a/libgfortran/caf_shared/shared_memory.c b/libgfortran/caf_shared/shared_memory.c
index b64e40a3ded..0c0b36c663d 100644
--- a/libgfortran/caf_shared/shared_memory.c
+++ b/libgfortran/caf_shared/shared_memory.c
@@ -190,7 +190,16 @@ shared_memory_init (shared_memory_act **pmem)
 {
   shared_memory_act *mem;
   int fd;
+
+  /* Darwin does not appear to be able to grow shared memory segments.  Choose
+     256 GB; that will likely be enough.  If not, the ftruncate will fail
+     noisily.  */
+
+#ifdef __APPLE__
+  size_t initial_size = ((size_t) 1) << 38;
+#else
   size_t initial_size = round_to_pagesize (sizeof (global_shared_memory_meta));
+#endif
 
   mem = malloc (get_shared_memory_act_size (1));
   fd = get_shmem_fd ();

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch, coarray_native, committed] Increase initial size on Darwin
  2021-01-18 17:36 ` Thomas Koenig
@ 2021-01-19  9:38   ` dhumieres.dominique
  0 siblings, 0 replies; 4+ messages in thread
From: dhumieres.dominique @ 2021-01-19  9:38 UTC (permalink / raw)
  To: Thomas Koenig; +Cc: fortran

Le 2021-01-18 18:36, Thomas Koenig a écrit :
> 
> Regarding the rest of the test cases, there is still a lot
> of work to do.

Indeed! Are some failures Darwin specific? Especially the tests
which are timed out.

Cheers,

Dominique

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch, coarray_native, committed] Increase initial size on Darwin
  2021-01-18 17:32 dhumieres.dominique
@ 2021-01-18 17:36 ` Thomas Koenig
  2021-01-19  9:38   ` dhumieres.dominique
  0 siblings, 1 reply; 4+ messages in thread
From: Thomas Koenig @ 2021-01-18 17:36 UTC (permalink / raw)
  To: dhumieres.dominique; +Cc: fortran


Hi Dominique,

> I have tested cas.exp with the following results
> 
> Running /opt/gcc/coarray/gcc/testsuite/gfortran.dg/caf-shared/cas.exp ...
> 
> 
>          === gfortran Summary ===
> 
> # of expected passes        94
> # of unsupported tests        2

Excellent!

That means that Darwin now works equally well to Linux.
Thanks for testing!

Regarding the rest of the test cases, there is still a lot
of work to do.

Best regards

	Thomas

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [patch, coarray_native, committed] Increase initial size on Darwin
@ 2021-01-18 17:32 dhumieres.dominique
  2021-01-18 17:36 ` Thomas Koenig
  0 siblings, 1 reply; 4+ messages in thread
From: dhumieres.dominique @ 2021-01-18 17:32 UTC (permalink / raw)
  To: tkoenig; +Cc: fortran

Hi Thomas,

I have tested cas.exp with the following results

Running /opt/gcc/coarray/gcc/testsuite/gfortran.dg/caf-shared/cas.exp 
...


		=== gfortran Summary ===

# of expected passes		94
# of unsupported tests		2
/opt/gcc/build_co/gcc/gfortran  version 11.0.0 20201231 (experimental) 
[coarray revision r11-6427-ge76a53644c9d] (GCC)

I have also added

     foreach flags $option_list {
         verbose "Testing $nshort (libcaf_shared), $flags" 1
         set gfortran_aux_module_flags "-fcoarray=lib $flags 
-lcaf_single"
         dg-test $test "-fcoarray=shared $flags -lcaf_shared 
$maybe_atomic_lib" ""
         cleanup-modules ""
     }

to caf.exp, with the following results:

Running /opt/gcc/coarray/gcc/testsuite/gfortran.dg/coarray/caf.exp ...
FAIL: gfortran.dg/coarray/alloc_comp_2.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/alloc_comp_2.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/alloc_comp_4.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/alloc_comp_5.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/allocate_errgmsg.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/atomic_2.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/codimension.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/codimension.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/codimension_3.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/codimension_3.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/coindexed_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
WARNING: program timed out.
FAIL: gfortran.dg/coarray/collectives_3.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/event_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/event_2.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/event_3.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/event_4.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/failed_images_2.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/get_to_indexed_array_1.f90 -fcoarray=shared  
-O2  -lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/get_to_indexed_array_1.f90 -fcoarray=shared  
-O2  -lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/get_to_indirect_array.f90 -fcoarray=shared  
-O2  -lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/get_to_indirect_array.f90 -fcoarray=shared  
-O2  -lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/image_status_2.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/image_status_2.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/lib_realloc_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/lib_realloc_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
WARNING: program timed out.
FAIL: gfortran.dg/coarray/lock_1.f90 -fcoarray=shared  -O2  -lcaf_shared 
-latomic execution test
WARNING: program timed out.
FAIL: gfortran.dg/coarray/lock_2.f90 -fcoarray=shared  -O2  -lcaf_shared 
-latomic execution test
FAIL: gfortran.dg/coarray/move_alloc_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
WARNING: program timed out.
FAIL: gfortran.dg/coarray/poly_run_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
WARNING: program timed out.
FAIL: gfortran.dg/coarray/poly_run_2.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
WARNING: program timed out.
FAIL: gfortran.dg/coarray/poly_run_3.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/pr93671.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/ptr_comp_1.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/ptr_comp_2.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/ptr_comp_3.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/ptr_comp_4.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic execution test
FAIL: gfortran.dg/coarray/registering_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (internal compiler error)
FAIL: gfortran.dg/coarray/registering_1.f90 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/stopped_images_2.f08 -fcoarray=shared  -O2  
-lcaf_shared -latomic (test for excess errors)
FAIL: gfortran.dg/coarray/sync_1.f90 -fcoarray=shared  -O2  -lcaf_shared 
-latomic execution test
FAIL: gfortran.dg/coarray/sync_3.f90 -fcoarray=shared  -O2  -lcaf_shared 
-latomic (internal compiler error)
FAIL: gfortran.dg/coarray/sync_3.f90 -fcoarray=shared  -O2  -lcaf_shared 
-latomic (test for excess errors)

		=== gfortran Summary ===

# of expected passes		355
# of unexpected failures	42
# of unresolved testcases	10
# of unsupported tests		6
/opt/gcc/build_co/gcc/gfortran  version 11.0.0 20201231 (experimental) 
[coarray revision r11-6427-ge76a53644c9d] (GCC)

Thanks for the work,

Dominique

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-01-19  9:38 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-17 19:13 [patch, coarray_native, committed] Increase initial size on Darwin Thomas Koenig
2021-01-18 17:32 dhumieres.dominique
2021-01-18 17:36 ` Thomas Koenig
2021-01-19  9:38   ` dhumieres.dominique

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).