The default stealstack size should be increased, per Paul Hargrove's suggestion. In addition, we should check an environment variable to allow the user to define a new size without editing the source and recompiling.
Since we do depth-first search, the upper bound on the stack size is given by the height of the tree. For T2WL, this is 1,021,239.
Ah, well the compiled-in limit on the steal stack is just 500,000 (or 2,000,000 in uts-upc-enhanced).
So, I'd recommend the following minor patch to the sources to allow compile-time selection of a larger stack:
--- uts_shm.c 6 Jul 2011 02:16:24 -0000 1.1.1.1
+++ uts_shm.c 8 Jul 2011 23:27:01 -0000
@@ -268,7 +268,9 @@
* StealStack types *
***********************************************************/
+#ifndef MAXSTACKDEPTH
#define MAXSTACKDEPTH 500000
+#endif
/* stack of nodes */
struct stealStack_t
--- uts_upc_enhanced.c 6 Jul 2011 02:16:24 -0000 1.1.1.1
+++ uts_upc_enhanced.c 8 Jul 2011 23:27:01 -0000
@@ -139,7 +139,9 @@
* StealStack types *
***********************************************************/
+#ifndef MAXSTACKDEPTH
#define MAXSTACKDEPTH 2000000
+#endif
/* stack of nodes */
struct stealStack_t
Anonymous