Merge pull request #152409 from collares/singular-maxprocess
singular: backport patch to fix docbuilding with >= 64 cpus
This commit is contained in:
commit
3c5bd4a74c
@ -47,12 +47,13 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
|
# fix timeouts when docbuilding with >= 64 cpus
|
||||||
|
# https://github.com/Singular/Singular/issues/1117
|
||||||
|
./vspace-MAX_PROCESS.patch
|
||||||
|
|
||||||
# add aarch64 support to cpu-check.m4. copied from redhat.
|
# add aarch64 support to cpu-check.m4. copied from redhat.
|
||||||
./redhat-aarch64.patch
|
./redhat-aarch64.patch
|
||||||
|
|
||||||
# vspace causes hangs in modstd and other libraries on aarch64
|
|
||||||
./disable-vspace-on-aarch64.patch
|
|
||||||
|
|
||||||
# the newest version of ax-prog-cc-for-build.m4 seems to trigger
|
# the newest version of ax-prog-cc-for-build.m4 seems to trigger
|
||||||
# linker errors. see
|
# linker errors. see
|
||||||
# https://github.com/alsa-project/alsa-firmware/issues/3 for a
|
# https://github.com/alsa-project/alsa-firmware/issues/3 for a
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
diff --git a/kernel/mod2.h b/kernel/mod2.h
|
|
||||||
index 867fcae47..2abd84f23 100644
|
|
||||||
--- a/kernel/mod2.h
|
|
||||||
+++ b/kernel/mod2.h
|
|
||||||
@@ -60,8 +60,10 @@
|
|
||||||
|
|
||||||
/* define for parallel processes with shared memory */
|
|
||||||
#ifndef __CCYGWIN__
|
|
||||||
+#ifndef SI_CPU_AARCH64
|
|
||||||
#define HAVE_VSPACE 1
|
|
||||||
#endif
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
/*#define PROFILING*/
|
|
||||||
#ifdef PROFILING
|
|
@ -0,0 +1,35 @@
|
|||||||
|
diff --git a/kernel/GBEngine/kChinese.cc b/kernel/GBEngine/kChinese.cc
|
||||||
|
index 829a66609..84655caf2 100644
|
||||||
|
--- a/kernel/GBEngine/kChinese.cc
|
||||||
|
+++ b/kernel/GBEngine/kChinese.cc
|
||||||
|
@@ -209,6 +209,8 @@ ideal id_ChineseRemainder_0(ideal *xx, number *q, int rl, const ring r)
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
|
||||||
|
+ if (cpus>=vspace::internals::MAX_PROCESS)
|
||||||
|
+ cpus=vspace::internals::MAX_PROCESS-1;
|
||||||
|
if ((cpus==1) || (2*cpus>=cnt))
|
||||||
|
/* at least 2 polys for each process, or switch to seriell version */
|
||||||
|
return id_ChineseRemainder(xx,q,rl,r);
|
||||||
|
@@ -295,6 +297,8 @@ ideal id_Farey_0(ideal x, number N, const ring r)
|
||||||
|
{
|
||||||
|
int cnt=IDELEMS(x)*x->nrows;
|
||||||
|
int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
|
||||||
|
+ if (cpus>=vspace::internals::MAX_PROCESS)
|
||||||
|
+ cpus=vspace::internals::MAX_PROCESS-1;
|
||||||
|
if (2*cpus>=cnt) /* at least 2 polys for each process,
|
||||||
|
or switch to seriell version */
|
||||||
|
return id_Farey(x,N,r);
|
||||||
|
diff --git a/kernel/GBEngine/kverify.cc b/kernel/GBEngine/kverify.cc
|
||||||
|
index 909d84994..aa06d6624 100644
|
||||||
|
--- a/kernel/GBEngine/kverify.cc
|
||||||
|
+++ b/kernel/GBEngine/kverify.cc
|
||||||
|
@@ -176,6 +176,8 @@ BOOLEAN kVerify2(ideal F, ideal Q)
|
||||||
|
/*---------------------------------------------------------------------*/
|
||||||
|
BOOLEAN all_okay=TRUE;
|
||||||
|
int cpus=(int)(long)feOptValue(FE_OPT_CPUS);
|
||||||
|
+ if (cpus>=vspace::internals::MAX_PROCESS)
|
||||||
|
+ cpus=vspace::internals::MAX_PROCESS-1;
|
||||||
|
int parent_pid=getpid();
|
||||||
|
using namespace vspace;
|
||||||
|
vmem_init();
|
Loading…
Reference in New Issue
Block a user