# Orthogonalize.jl

**URL:** <https://discourse.julialang.org/t/orthogonalize-jl/57181>\
**Category:** Performance\
**Tags:** package\
**Created:** [March 15, 2021, 8:57am UTC](https://discourse.julialang.org/t/orthogonalize-jl/57181 "2021-03-15T08:57:53Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![vlederer](https://avatars.discourse-cdn.com/v4/letter/v/e8c25b/32.png) [@vlederer](https://discourse.julialang.org/u/vlederer)\
**Post date:** [March 15, 2021, 8:57am UTC](https://discourse.julialang.org/t/orthogonalize-jl/57181/1 "2021-03-15T08:57:53Z")

</div>

Hi, using orthogonalize.jl from IterativeSolvers.jl I made some performance plots (dodgeTPSbench.png attached) where “ON” tags refers to the julia internal function orthogonalize\_and\_normalize!() and MGS referst to Modified Gram Schmidt process. As we can see on this plot, MGS time is twice larger than CGS (Classical Gram-Schmidt) process and bit less than the reorthogonalized one (CGS2). My question is how can we explain those good time results for ONMGS ? If we look orthogonalize.jl, we see blas-1 ops but I guess those good results come from the rank-1 update of w, since this one looks vectorized?

 ![dodgeTPSbench](https://global.discourse-cdn.com/julialang/original/3X/0/5/0571c29721954ab8efea57c742ba948dc781f9f9.png)
