@Override
    public Set<Shape> select(Model model, StartingContext startingContext) {
        Collection<? extends Shape> startingShapes = getStartingShapes(model, startingContext);

        if (isParallel(startingShapes)) {
            return shapes(model).collect(Collectors.toSet());
        } else {
            // This is more optimized than using shapes() for smaller models that aren't parallelized.
            Set<Shape> result = new HashSet<>();
            pushShapes(model, startingShapes, (ctx, s) -> {
                result.add(s);
                return InternalSelector.Response.CONTINUE;
            });
            return result;
        }
    }
Uses parallel streams when the model size exceeds this number.
smithy-model/src/main/java/software/amazon/smithy/model/selector/WrappedSelector.java