将片段传递给用于go例程的函数

I have the following function which takes as parameters two slices of two dimensional arrays of ints (where coreCount is amount of cores available)

func calculate(slice_1 [][array_size][array_size]int, slice_2 []  [array_size[array_size]int, coreCount int) {
//for each (coreCount*k + i, i = 0, ... , coreCount) matrix from slice_1 take matrix from slice_2 and check some criteria while not changing matrix under check
}

Slices are quite big in size (thousands of two dimensional arrays) so it's good idea to do the checking in parallel. So I simply create (in case of 4 cores compurer)

go calculate(slice_1 , slice_2, 4)
go calculate(slice_1 , slice_2, 4)
go calculate(slice_1 , slice_2, 4)
go calculate(slice_1 , slice_2, 4)

But it still calculates not in parallel. What's wrong?

There's no need for func in a go statement (just write go funcName(arg1, arg2)).

Also, we'll need the whole program (or at least a simplified, working version) to be able to help you. Have you set GOMAXPROCS?

To do some checking in parallel, your goroutines would need to look at different parts of the input data and from your very brief code sketch, at best you'd run the same calculation four times. That is, of course, assuming that you actually spawn four goroutines with the same arguments and nothing to distinguish them from each other.