मैं अपने VirtualBoxed उबंटू 11,4गो कथन समानांतर में क्यों निष्पादित नहीं करता है?
package main
import ("fmt";"time";"big")
var c chan *big.Int
func sum(start,stop,step int64) {
bigStop := big.NewInt(stop)
bigStep := big.NewInt(step)
bigSum := big.NewInt(0)
for i := big.NewInt(start);i.Cmp(bigStop)<0 ;i.Add(i,bigStep){
bigSum.Add(bigSum,i)
}
c<-bigSum
}
func main() {
s := big.NewInt(0)
n := time.Nanoseconds()
step := int64(4)
c = make(chan *big.Int , int(step))
stop := int64(100000000)
for j:=int64(0);j<step;j++{
go sum(j,stop,step)
}
for j:=int64(0);j<step;j++{
s.Add(s,<-c)
}
n = time.Nanoseconds() - n
fmt.Println(s,float64(n)/1000000000.)
}
Ubuntu पर इस जाने कोड का परीक्षण कर रहा हूँ मेरे सभी 4 कोर की पहुंच है। मैंने इसे कई निष्पादन योग्य और सिस्टम मॉनीटर के साथ-साथ चलाने के साथ चेक किया। लेकिन जब मैं इस कोड को चलाने की कोशिश कर रहा हूं, तो यह केवल एक कोर का उपयोग कर रहा है और समानांतर प्रसंस्करण का कोई लाभ नहीं प्राप्त कर रहा है।
मैं क्या गलत कर रहा हूं?
यह भी ध्यान रखें कि डिफ़ॉल्ट "1" – mnagel
ओएसएक्स 10.11 पर go1.6.3 के साथ डिफ़ॉल्ट CPU कोर की संख्या है। मेरा मानना है कि यह गो v1.5 में बदल गया था। – Xeoncross