Example #1
0
            def _declareArguments(self):
                nGlobal = self.comp.varParams['size']
                localSizes = numpy.zeros(self.size, int)
                for i in xrange(self.size):
                    procPctg = 1.0 / (self.size - i)
                    remainingSize = nGlobal - numpy.sum(localSizes)
                    localSizes[i] = int(round(procPctg * remainingSize))
                i1 = numpy.sum(localSizes[:self.rank])
                i2 = numpy.sum(localSizes[:self.rank + 1])
                self._setLocalSize(localSizes[self.rank])

                self.cplFactors = []

                wrap, a, b = self.comp.compParams['struct']
                coupling = self.comp.compParams['coupling']
                numDeps = self.comp.compParams['numDeps']
                rands = numpy.array([random.random() for i in xrange(numDeps)])
                nLocal = i2 - i1
                indices, cplFactors = GCMPlib.unknownarg(wrap, a, b, i1, i2, \
                                                             nGlobal, nLocal, numDeps, \
                                                             coupling, rands)
                indices = indices.reshape(nLocal * numDeps, order='F')
                self._setArgument(self.name, self.copy, indices=indices)
                self.cplFactors.append(cplFactors)

                args = self.comp.args
                for (n, c) in args:
                    nLocal = i2 - i1
                    indices = GCMPlib.parameterarg(i1, i2, nGlobal, nLocal, \
                                                       args[n,c][0], numDeps)
                    indices = indices.reshape(nLocal * numDeps, order='F')
                    self._setArgument(n, c, indices=indices)
                    self.cplFactors.append(
                        numpy.ones((nLocal, numDeps), order='F'))

                self.cplFactors = numpy.concatenate(self.cplFactors, axis=0)
                self.i1, self.i2 = i1, i2
Example #2
0
            def _declareArguments(self):
                nGlobal = self.comp.varParams['size']
                localSizes = numpy.zeros(self.size, int)
                for i in xrange(self.size):
                    procPctg = 1.0/(self.size-i)
                    remainingSize = nGlobal - numpy.sum(localSizes)
                    localSizes[i] = int(round(procPctg * remainingSize))
                i1 = numpy.sum(localSizes[:self.rank])
                i2 = numpy.sum(localSizes[:self.rank+1])
                self._setLocalSize(localSizes[self.rank])

                self.cplFactors = []

                wrap, a, b = self.comp.compParams['struct']
                coupling = self.comp.compParams['coupling']
                numDeps = self.comp.compParams['numDeps']
                rands = numpy.array([random.random() for i in xrange(numDeps)])
                nLocal = i2 - i1
                indices, cplFactors = GCMPlib.unknownarg(wrap, a, b, i1, i2, \
                                                             nGlobal, nLocal, numDeps, \
                                                             coupling, rands)
                indices = indices.reshape(nLocal*numDeps, order='F')
                self._setArgument(self.name, self.copy, indices=indices)
                self.cplFactors.append(cplFactors)

                args = self.comp.args
                for (n,c) in args:
                    nLocal = i2 - i1
                    indices = GCMPlib.parameterarg(i1, i2, nGlobal, nLocal, \
                                                       args[n,c][0], numDeps)
                    indices = indices.reshape(nLocal*numDeps, order='F')
                    self._setArgument(n, c, indices=indices)
                    self.cplFactors.append(numpy.ones((nLocal,numDeps), order='F'))

                self.cplFactors = numpy.concatenate(self.cplFactors, axis=0)
                self.i1, self.i2 = i1, i2