Help with @distributed with an iterator and speed issue

I have two questions about the following code (in which I’m looking to get the largest eigenvalue of a matrix by permuting its rows).

using LinearAlgebra, Combinatorics, Distributed

function maxeig(A::Matrix)
    return maximum(real.(eigvals(A)))
end

function maxmaxeig(A::Matrix)
    n, c = size(A)
    f(p) = maxeig(A[p,:])
    return maximum(f(p) for p in permutations(1:n))
end

function maxmaxeig_dist(A::Matrix)
    n, c = size(A)
    f(p) = maxeig(A[p,:])
    @distributed (max) for p in permutations(1:n) 
        f(p)
    end
end

Question 1

The first function works fine, but this seems to be a good candidate for distributed computing. So I start with julia -p 8 and include this code with an @everywhere include("filename.jl"). The distributed version fails with this error message:

julia> maxmaxeig_dist(A)
ERROR: MethodError: no method matching firstindex(::Combinatorics.Permutations{Int64})
Closest candidates are:
  firstindex(::Any, ::Any) at abstractarray.jl:366
  firstindex(::Polynomials.LaurentPolynomial) at /Users/ers/.julia/packages/Polynomials/1aa8e/src/polynomials/LaurentPolynomial.jl:225
  firstindex(::Polynomials.SparsePolynomial) at /Users/ers/.julia/packages/Polynomials/1aa8e/src/polynomials/SparsePolynomial.jl:143
  ...
Stacktrace:
 [1] preduce(reducer::Function, f::Function, R::Combinatorics.Permutations{Int64})
   @ Distributed /Users/julia/buildbot/worker/package_macos64/build/usr/share/julia/stdlib/v1.6/Distributed/src/macros.jl:269
 [2] maxmaxeig_dist(A::Matrix{Int64})
   @ Main ~/tmp/maxmaxeig.jl:16
 [3] top-level scope
   @ REPL[37]:1

I can make the parallel version work properly by replacing for p in permutations(1:n) with for p in collect(permutations(1:n)) which expands the iterator permutations(1:n) into a very long list.

Question 2

The distributed version is a good deal slower than the first, even if I “level the playing field” by wrapping for p in permutations(1:n) with collect. I’m guessing that I’ve got a lot of data movement involving the passing the matrix A (say, 10-by-10) around.

Finally: I’m not an expert, so beginner friendly advice would be most welcome. Thanks!