[julia-users] Re: anyway to get immutable constants?

2015-02-19 Thread Petr Krysl
Could not functions be used for this purpose? Let us say you wish to get a constant array: How about you call a function that will give you that array by CONSTRUCTING it on the fly. Since the logic of the function is immutable, you get a constant array. P On Wednesday, February 18, 2015 at

[julia-users] Re: Automatic triangulation package: testing?

2015-02-17 Thread Petr Krysl
Apparently it works fine (Thanks very much, Rob!). Enjoy, and if you run into any trouble please feel free to let me know. Petr On Tuesday, February 17, 2015 at 12:20:22 PM UTC-8, Petr Krysl wrote: Hi guys, I have uploaded to Github a Julia package that wraps an automatic 2D triangulation

[julia-users] Automatic triangulation package: testing?

2015-02-17 Thread Petr Krysl
Hi guys, I have uploaded to Github a Julia package that wraps an automatic 2D triangulation tool (binary). I only have access to Windows and Linux, so I was wondering if anyone would be willing to take it for a spin on the Mac? https://github.com/PetrKryslUCSD/Targe2.jl Thanks! Petr

[julia-users] Re: [ANN] Differential Equation solver test suite

2015-02-03 Thread Petr Krysl
Mauro, I would be curious to learn details of what you did. How did you define the reference solution? I presume it is the value of the solution at some point in time? Did you use extrapolation to the limit? How did you measure the number of significant digits? In particular, for the

[julia-users] Re: What's your favourite editor?

2015-01-19 Thread Petr Krysl
Does anyone use sublime using a touch screen? I've tried to teach sublime to select with a finger, but no luck so far.… And, actually the same thing with the atom editor: I cannot with a finger, it always results in the dragging of the entire pane. Thanks, Petr On Monday, January

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-15 Thread Petr Krysl
-and-conversion Thanks, Petr On Sunday, January 11, 2015 at 12:20:39 PM UTC-8, Tobias Knopp wrote: The call syntax is part of 0.4 Cheers Tobi Am Sonntag, 11. Januar 2015 19:35:06 UTC+1 schrieb Petr Krysl: On Sunday, January 11, 2015 at 10:22:05 AM UTC-8, Tim Holy

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-15 Thread Petr Krysl
Aha: # Fast, got to declare the object! function test5{T}(o::Type{T}, n) summ=0 for i=1:n summ=summ+o(i) end return summ end julia include(fun.jl) test1(g, n) = 50023457750685 elapsed time: 0.619951473 seconds (480173520 bytes allocated, 27.32% gc time) test2(n) =

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-15 Thread Petr Krysl
Thanks. Cool ideas! P On Thursday, January 15, 2015 at 12:08:05 PM UTC-8, Mauro wrote: Have you read this recent thread and its examples? https://groups.google.com/d/msg/julia-dev/JEiH96ofclY/_amm9Cah6YAJ M On Thu, 2015-01-15 at 20:50, Petr Krysl krysl...@gmail.com javascript: wrote

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-15 Thread Petr Krysl
So the call syntax on a type works, but using the implementation referenced above, it is SLOW. # Slow, function callback function test1(f, n) summ=0 for i=1:n summ=summ+f(i) end return summ end g(i::Int)=i # Fast, hardwired function g() function test2(n) summ=0 for i=1:n

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-14 Thread Petr Krysl
Hi Tobias, Is there an example of the use of this new syntax for 0.4? Thanks, Petr On Sunday, January 11, 2015 at 12:20:39 PM UTC-8, Tobias Knopp wrote: The call syntax is part of 0.4 Cheers Tobi Am Sonntag, 11. Januar 2015 19:35:06 UTC+1 schrieb Petr Krysl: On Sunday, January 11

Re: [julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
be a good thing? P On Tuesday, January 13, 2015 at 4:06:30 PM UTC-8, Petr Krysl wrote: Mauro, On Tuesday, January 13, 2015 at 1:45:36 PM UTC-8, Mauro wrote: I don't think it is good practice to add unrelated methods to generic functions in Base. A guide-line could be to check whether your

Re: [julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
Very true. P On Tuesday, January 13, 2015 at 6:17:30 PM UTC-8, ele...@gmail.com wrote: On Wednesday, January 14, 2015 at 11:34:55 AM UTC+10, Petr Krysl wrote: By the way: what is wrong with having length(Boat) length(Vacation) length(Membership) length(Stay) length(Nose) Hi Peter

[julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
I realized that one reason the discussion at https://github.com/JuliaLang/julia/issues/4345 https://www.google.com/url?q=https%3A%2F%2Fgithub.com%2FJuliaLang%2Fjulia%2Fissues%2F4345sa=Dsntz=1usg=AFQjCNEVGpsg9UKLmRUDr3BN281cKXgCKA was not addressing my viewpoint was that there the issue is

[julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
I have a trouble following the reasoning in the 4345 issues trail. If a module defines a method (let us say count) and brings in into an environment that already has a method for the function count(), both are available provided there signatures allow for the compiler to distinguish between

Re: [julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
I would argue that this would be prohibited by the compiler as it could not distinguish between foo(x::Number) = 2 and foo(x::Float64) = 3 But, it would be perfectly safe to have foo(a::TypeA) and foo(b::TypeB) Different functions in that case. In the example I gave, count was allowed to be

Re: [julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
for generic function foo: foo() at none:7 foo(x) at none:11 On Tue, 2015-01-13 at 17:22, Petr Krysl krysl...@gmail.com javascript: wrote: I have a trouble following the reasoning in the 4345 issues trail. If a module defines a method (let us say count) and brings

Re: [julia-users] Re: Later methods definition replaces the previous one?

2015-01-13 Thread Petr Krysl
Mauro, On Tuesday, January 13, 2015 at 1:45:36 PM UTC-8, Mauro wrote: I don't think it is good practice to add unrelated methods to generic functions in Base. A guide-line could be to check whether your methods matches up with the help text, if so, add it to Base.count otherwise not.

[julia-users] Re: How to combine portable Julia with Portable Python under Windows7 for e.g. PyPlot?

2015-01-13 Thread Petr Krysl
I think I've had the same problem. I was given the advice of installing the Anaconda distribution of python.. That worked. Petr On Tuesday, January 13, 2015 at 11:29:41 AM UTC-8, Manfred wrote: As Julia user I am below novice level which is due to the fact that I have not yet managed to

[julia-users] Later methods definition replaces the previous one?

2015-01-12 Thread Petr Krysl
I have two nested modules, both of them export a function of the same name. The functions have arguments of different types. Both functions are also exported from the parent module. At least that is the intent, but it fails. Only the latest definition is visible outside (unqualified).

Re: [julia-users] Re: FE solver in Julia fast and faster

2015-01-11 Thread Petr Krysl
I'm not SURE, but the toolkit name (and the toolkit itself) is my invention. First used in 2012. This is not part of standard Matlab distribution Petr On Sunday, January 11, 2015 at 2:04:36 AM UTC-8, Milan Bouchet-Valat wrote: Le samedi 10 janvier 2015 à 18:10 -0800, Petr Krysl

Re: [julia-users] Package structure

2015-01-11 Thread Petr Krysl
Sounds like a good idea. P On Saturday, January 10, 2015 at 7:23:25 PM UTC-8, Rob J Goedman wrote: Petr, Would you like me to prepare a simple pull request tomorrow? Regards, Rob Sent from my iPhone On Jan 10, 2015, at 6:22 PM, Petr Krysl krysl...@gmail.com javascript: wrote

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-11 Thread Petr Krysl
Here is a kludgy sort of solution. Tim and the other wizards will probably know if it was suggested before. https://gist.github.com/PetrKryslUCSD/7b96cd937e2e6cdb58db Measurements: elapsed time: 0.440441867 seconds (320050384 bytes allocated, 31.29% gc time) elapsed time: 0.001976364

Re: [julia-users] Speed of Julia when a function is passed as an argument, and a different, but much faster coding.

2015-01-11 Thread Petr Krysl
On Sunday, January 11, 2015 at 10:22:05 AM UTC-8, Tim Holy wrote: Already implement in julia 0.4. Very cool! Just checking: are you saying that the solution I proposed with the empty types would actually address the problem of functions being inefficient as when passed in as

Re: [julia-users] Package structure

2015-01-11 Thread Petr Krysl
Regards, Rob J. Goedman goe...@mac.com javascript: On Jan 11, 2015, at 9:30 AM, Petr Krysl krysl...@gmail.com javascript: wrote: Sounds like a good idea. P On Saturday, January 10, 2015 at 7:23:25 PM UTC-8, Rob J Goedman wrote: Petr, Would you like me to prepare a simple pull request

Re: [julia-users] How to define help text for a module function so that it displays in REPL

2015-01-10 Thread Petr Krysl
Hi, I had a look at your package: very nice indeed! It is not clear to me where the actual documentation is though. I followed some links to source code and there was no documentation in there… Petr On Saturday, January 10, 2015 at 8:35:24 AM UTC-8, tshort wrote: Docile.jl works great.

[julia-users] Re: FE solver in Julia fast and faster

2015-01-10 Thread Petr Krysl
Jeff, Not sure this is answering your question: both the commercial software and the Julia solver were run on the same machine (i7 with 16 GB of memory running Windows 7). On an equivalent Linux laptop the Julia solver is even faster. Comsol is not available on that laptop. P On Saturday,

[julia-users] Re: FE solver in Julia fast and faster

2015-01-10 Thread Petr Krysl
The optimized toolkit JFinEALE is now available on github: https://github.com/PetrKryslUCSD/JFinEALE Petr

[julia-users] Re: FE solver in Julia fast and faster

2015-01-10 Thread Petr Krysl
than I imagine. Anyway, thanks for this great package! :) Am Samstag, 10. Januar 2015 03:42:24 UTC+1 schrieb Petr Krysl: Hello all, Big thanks to Tim Holy and Andreas Noack. The FE solver implemented in Julia as described previously ( https://groups.google.com/forum/?fromgroups

[julia-users] Re: FE solver in Julia fast and faster

2015-01-10 Thread Petr Krysl
Correction: The repository has been now updated to look like a true Julia package. It can be cloned and there's even a rudimentary test. https://github.com/PetrKryslUCSD/JFinEALE.jl P On Saturday, January 10, 2015 at 11:57:48 AM UTC-8, Petr Krysl wrote: The optimized toolkit JFinEALE is now

[julia-users] Package structure

2015-01-10 Thread Petr Krysl
Hello everybody, I wonder if I could get some advice on how to structure a package? I could see how the SRC and TEST folders had a place in the package structure, but so far I could not discern a systematic way for access to examples that use the package. In particular, when I create a

[julia-users] FE solver in Julia fast and faster

2015-01-09 Thread Petr Krysl
Hello all, Big thanks to Tim Holy and Andreas Noack. The FE solver implemented in Julia as described previously (https://groups.google.com/forum/?fromgroups=#!searchin/julia-users/Krysl/julia-users/dgNqrJBZx5U/oGeXMZFjToMJ) has been further optimized with their helpful hints and pointers.

Re: [julia-users] Why is memory allocated to run loop?

2015-01-09 Thread Petr Krysl
hope I will remember from now on. Thanks again, Petr On Friday, January 9, 2015 at 12:08:58 PM UTC-8, Tim Holy wrote: On Friday, January 09, 2015 11:51:15 AM Petr Krysl wrote: The size() function is from the base. fes.conn is a 2D array of ints. No it's not, it's a JFIntMat

Re: [julia-users] Why is memory allocated to run loop?

2015-01-09 Thread Petr Krysl
an indication if it is the case. 2015-01-09 14:51 GMT-05:00 Petr Krysl krysl...@gmail.com javascript:: The size() function is from the base. fes.conn is a 2D array of ints. P On Friday, January 9, 2015 at 11:25:34 AM UTC-8, Tim Holy wrote: I wonder if your `size` function isn't returning

Re: [julia-users] Why is memory allocated to run loop?

2015-01-09 Thread Petr Krysl
Actually, I realized that the example shows the same problem, but for a different function. This time the allocation occurs in the function CALLING getconn!. P On Friday, January 9, 2015 at 8:03:00 AM UTC-8, Petr Krysl wrote: Tim, Your explanation is very helpful

Re: [julia-users] Why is memory allocated to run loop?

2015-01-09 Thread Petr Krysl
Tim, Your explanation is very helpful. There is a complication though: The function is actually called from another function (from a chain of functions). Here is the measurement from a simplified situation: - using JFFoundationModule - using FESetModule - -

[julia-users] Why is memory allocated to run loop?

2015-01-08 Thread Petr Krysl
julia a=rand(100); julia n=length(a); julia @allocated for j=1:n end 63983688 64 MB to run this loop? Is that expected? Thanks for any insight. Petr

Re: [julia-users] Why is memory allocated to run loop?

2015-01-08 Thread Petr Krysl
-05:00 Petr Krysl krysl...@gmail.com javascript:: julia a=rand(100); julia n=length(a); julia @allocated for j=1:n end 63983688 64 MB to run this loop? Is that expected? Thanks for any insight. Petr

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-08 Thread Petr Krysl
to avoid performance gotchas in Julia. Best regards, P Rob J. Goedman goe...@mac.com javascript: On Jan 6, 2015, at 6:39 PM, Petr Krysl krysl...@gmail.com javascript: wrote: Oh, in that case I am tickled pink. Please do let me know if you find any typos or mistakes. Best regards

[julia-users] Re: Tips and tricks for figuring out where allocation occurs

2015-01-08 Thread Petr Krysl
Sorry, just noticed a typo. The second statement should read: Parallel to the TIME axis is for all 0 = x = L for a fixed time, i.e. initial conditions. On Monday, January 5, 2015 8:48:04 PM UTC-8, Petr Krysl wrote: Hi guys, How does one figure out where allocation of memory occurs? When

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-08 Thread Petr Krysl
Oh no, got that wrong. (Responding to email while rushing to class is not a good idea.) The FIRST statement was incorrect. Parallel to the TIME axis means w(0,t) or w(L,t) for all t in range (i.e. between initial and final time). Parallel to the space axis means w(0,t) or w(L,t) for all t in

[julia-users] How does one read this declaration please?

2015-01-07 Thread Petr Krysl
What does this mean please? function myfunction{f}(::Type{f}, args...) # Do stuff using f just like an ordinary functionend I'm sorry to have to ask this, it would be much better to just go to the manual, but the manual search does not yield anything for Type{. Thanks a lot, Petr

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
, 2015 10:49:54 AM Milan Bouchet-Valat wrote: Le lundi 05 janvier 2015 à 20:48 -0800, Petr Krysl a écrit : Hi guys, How does one figure out where allocation of memory occurs? When I use the @time macro it tells me there's a lot of memory allocation and deallocation going

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
Thanks very much. This is useful. P On Tuesday, January 6, 2015 1:50:11 AM UTC-8, Milan Bouchet-Valat wrote: Le lundi 05 janvier 2015 à 20:48 -0800, Petr Krysl a écrit : Hi guys, How does one figure out where allocation of memory occurs? When I use the @time macro it tells me

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
Actually, correction: for 0.3.4 the _system_ *.mem files are in the julia folders. For _my_ source files the .mem files cannot be located. P On Tuesday, January 6, 2015 2:15:02 PM UTC-8, Petr Krysl wrote: I did this as suggested. The code executed as shown below, preceded by the command

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
**clear_malloc_data()* *julia * *include(/Users/rob/.julia/v0.3/FinealeBook/Examples/Fineale/Ch02/Ex07.jl)* *shell **ls* Ex07.jl Ex07.svg Ex08.svg Ex09.svg Section2.3.svg Ex07.jl.mem Ex08.jl Ex09.jl Section2.3.jl Section2.4.nb On Jan 6, 2015, at 2:15 PM, Petr Krysl krysl...@gmail.com javascript

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
lundi 05 janvier 2015 à 20:48 -0800, Petr Krysl a écrit : Hi guys, How does one figure out where allocation of memory occurs? When I use the @time macro it tells me there's a lot of memory allocation and deallocation going on. Just looking at the code I'm at a loss: I can't see

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
JFinEALE.jl Poisson_FE_example_model.jl annulus_Q4_example.jl Poisson_FE_Q4_example.jl Poisson_FE_example_model.jl.mem src Poisson_FE_example.jl README.md tests Robs-MacBook-Pro:jfineale_for_trying_out rob$ On Jan 6, 2015, at 3:01 PM, Petr Krysl krysl...@gmail.com javascript: wrote: Rob

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
, there may be some inaccuracies. --Tim On Tuesday, January 06, 2015 02:59:11 PM Petr Krysl wrote: Actually, correction: for 0.3.4 the _system_ *.mem files are in the julia folders. For _my_ source files the .mem files cannot be located. P On Tuesday, January 6, 2015 2:15:02 PM

Re: [julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-06 Thread Petr Krysl
. Regards, Rob J. Goedman goe...@mac.com javascript: On Jan 6, 2015, at 3:01 PM, Petr Krysl krysl...@gmail.com javascript: wrote: Rob, Thanks. I did find some .mem files (see above). Not for my own source files though. Petr PS: You have a fineale book? Interesting... I thought no one

[julia-users] Tips and tricks for figuring out where allocation occurs

2015-01-05 Thread Petr Krysl
Hi guys, How does one figure out where allocation of memory occurs? When I use the @time macro it tells me there's a lot of memory allocation and deallocation going on. Just looking at the code I'm at a loss: I can't see the reasons for it there. So, what are the tips and tricks for the

[julia-users] Puzzled by conflicting imports

2014-12-26 Thread Petr Krysl
Here are two methods in two different modules: julia methods(FEMMHeatDiffusionModule.distribloads) # 1 method for generic function distribloads: distribloads(self::FEMMHeatDiffusion,assembler,geom::NodalField{Float64},temp::N odalField{Float64},fi::ForceIntensity{Float64},m::Int64) at

[julia-users] Re: Puzzled by conflicting imports

2014-12-26 Thread Petr Krysl
in FEMMHeatDiffusionModule and one in FEMMAcousticsModule. Its the functions that clash. The issues suggests that combining the functions is hard/risky/brittle/error prone and in general a bad idea (tm). Cheers Lex On Saturday, December 27, 2014 5:27:31 AM UTC+10, Petr Krysl wrote: Here are two

[julia-users] Re: Comparison of FE codes; Julia versus commercial FE solver

2014-12-17 Thread Petr Krysl
, December 16, 2014 11:31:01 PM UTC-6, Petr Krysl wrote: Hello everybody, In case you're interested, here is the implementation so far. Switch to the top folder, and include one of the examples. If you have paraview, you could check the graphics output (enable graphics export in the source

[julia-users] Re: Comparison of FE codes; Julia versus commercial FE solver

2014-12-17 Thread Petr Krysl
Great. Normally I have no use for Gauss rules beyond order 4 (at most cubic finite elements in the library). But it is good to have access to arbitrary order. Thanks! P On Wednesday, December 17, 2014 1:35:34 PM UTC-8, Steven G. Johnson wrote: In particular, it looks like you just need:

[julia-users] Comparison of FE codes; Julia versus commercial FE solver

2014-12-16 Thread Petr Krysl
I have made some progress in my effort to gain insight into Julia performance in finite element solvers. I have compared my solver, J FinEALE, (compute and assemble global FE matrices and vectors, then solve the sparse system with Julia's sparse matrix facilities) with the commercial FEA

[julia-users] Re: Comparison of FE codes; Julia versus commercial FE solver

2014-12-16 Thread Petr Krysl
On Tuesday, 16 December 2014 17:52:29 UTC+1, Petr Krysl wrote: I have made some progress in my effort to gain insight into Julia performance in finite element solvers. I have compared my solver, J FinEALE, (compute and assemble global FE matrices and vectors, then solve the sparse system

[julia-users] Re: Comparison of FE codes; Julia versus commercial FE solver

2014-12-16 Thread Petr Krysl
Hello everybody, In case you're interested, here is the implementation so far. Switch to the top folder, and include one of the examples. If you have paraview, you could check the graphics output (enable graphics export in the source). As always, I'm keen on getting feedback, so don't

[julia-users] @profile - don't wait for me computation?

2014-12-14 Thread Petr Krysl
Version 0.3.2+2 (2014-10-22 01:21 UTC) release-0.3/6babc84* (fork: 180 commits, 126 days) x86_64-w64-mingw32 w/o @profile 0.68 seconds w @profile not finished 15 minutes later Anyone else had this trouble? Petr

[julia-users] What is the use of J[:,:] = K*M please?

2014-12-14 Thread Petr Krysl
Hello everybody, I hope someone knows this: What is the use of writing J[:,:] = K*M where all of these quantities are matrices? I thought I'd seen somewhere that it was assigning to the matrix in-place instead of creating a temporary. Is that so? I couldn't find it in the documentation

Re: [julia-users] What is the use of J[:,:] = K*M please?

2014-12-14 Thread Petr Krysl
or mutation can occur. This is contrasted with something like A_mul_B. -- John Sent from my iPhone On Dec 14, 2014, at 7:48 PM, Petr Krysl krysl...@gmail.com javascript: wrote: Hello everybody, I hope someone knows this: What is the use of writing J[:,:] = K*M where

Re: [julia-users] What is the use of J[:,:] = K*M please?

2014-12-14 Thread Petr Krysl
the input J. However, they will both allocate a new array. If you want to avoid allocation, you'll have to use either A_mul_B!(C,A,B) where C stores the result or BLAS.gemm!. 2014-12-14 20:12 GMT-05:00 Petr Krysl krysl...@gmail.com javascript:: ??? Could I have that again please? I don't

[julia-users] Difference between 0.3 and 0.4 – memory allocation running amok

2014-12-14 Thread Petr Krysl
Screen snapshot from 0.3: | | |_| | | | (_| | | Version 0.3.2+2 (2014-10-22 01:21 UTC) _/ |\__'_|_|_|\__'_| | release-0.3/6babc84* (fork: 180 commits, 127 days) |__/ | x86_64-w64-mingw32 julia cd( C:/Users/pkrysl/Documents/Research/Software folder/FEA software

[julia-users] Re: Are some matrices marked as special?

2014-12-13 Thread Petr Krysl
Naturally. I'm working on it. It is really more or less complete heat conduction FE program, consisting of several modules. I will post the whole thing on github. Thanks for the info! It's become slightly more mysterious then... Petr On Saturday, December 13, 2014 9:48:42 AM UTC-8,

[julia-users] Re: Are some matrices marked as special?

2014-12-13 Thread Petr Krysl
https://github.com/PetrKryslUCSD/Test_jfineale The runner is Poisson_FE_example.jl. I am running the test with Version 0.3.2+2 (2014-10-22 01:21 UTC) release-0.3/6babc84* (fork: 180 commits, 125 days) x86_64-w64-mingw32 Petr On Saturday, December 13, 2014 9:48:42 AM UTC-8, Steven G. Johnson

[julia-users] Re: Are some matrices marked as special?

2014-12-13 Thread Petr Krysl
You're absolutely right, sorry! I got distracted and I forgot to post instructions. I've also tried to simplify things, and I think I've gotten it down to just a few lines of code. Unfortunately, the rest of the code still needs to be there for declarations and such (

Re: [julia-users] Re: Are some matrices marked as special?

2014-12-13 Thread Petr Krysl
. If it is, the solver uses the \(Diagonal, Matrix) method which avoid the LU factorization that \(Matrix, Matrix) uses. Do you think that is the reason? 2014-12-13 17:56 GMT-05:00 Petr Krysl krysl...@gmail.com javascript:: You're absolutely right, sorry! I got distracted and I forgot to post

Re: [julia-users] Re: Aren't loops supposed to be faster?

2014-12-12 Thread Petr Krysl
, Tim Holy tim@gmail.com javascript: wrote: On Thursday, December 11, 2014 08:10:38 PM Petr Krysl wrote: The moral of this story is: If you can't or won't declare every single variable, don't do loops. They are likely to be a losing proposition. Just to follow up further

Re: [julia-users] Re: Aren't loops supposed to be faster?

2014-12-12 Thread Petr Krysl
to be saying that the matrix returns the correct type. Am I wrong? Thanks, Petr On Friday, December 12, 2014 9:17:41 AM UTC-8, Petr Krysl wrote: Stefan, If you mean by the original code Ke1() and Ke2(), those were contrived examples that unfortunately did not even represent the problems

[julia-users] Are some matrices marked as special?

2014-12-12 Thread Petr Krysl
Are perhaps matrices initialized as all zeros or identity matrices marked as special behind the scenes, so that no actual processing is done when there used for instance in multiplication? Thanks, Petr

[julia-users] Re: Are some matrices marked as special?

2014-12-12 Thread Petr Krysl
Well, I can see no difference either. But here is the tale of four matrices. They are each fed in turn to the same operation as input: everything else is precisely the same. The timings of that operation are as follows: Rm1=eye(2,2) # 25 seconds Rm2=[-0.668742918086684 -0.743493718540316;

[julia-users] Re: Are some matrices marked as special?

2014-12-12 Thread Petr Krysl
Steven, I also thought of floating-point exceptions. However, the results are perfectly fine. Not identical, only within numerical precision, but pretty good nonetheless. The matrix passed in is the material of rotation matrix. Since the material conductivity matrix is an identity, the

Re: [julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-11 Thread Petr Krysl
* element wise over the array. No magic is going on there. [1] https://github.com/JuliaLang/julia/issues/8450 [2] http://docs.julialang.org/en/release-0.3/stdlib/profile/ [3] https://github.com/lindahua/Devectorize.jl On Thursday, 11 December 2014 06:23:29 UTC+1, Petr Krysl wrote: Thanks. Now my

[julia-users] Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
Acting upon the advice that replacing matrix-matrix multiplications in vectorized form with loops would help with performance, I chopped out a piece of code from my finite element solver (https://gist.github.com/anonymous/4ec426096c02faa4354d) and ran some tests with the following results:

Re: [julia-users] Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
the weird behavior of loops being slower than vectorized code. https://gist.github.com/PetrKryslUCSD/ae4a0f218fe50abe370f Thanks again, Petr On Thursday, December 11, 2014 9:02:00 AM UTC-8, Andreas Noack wrote: See the comment in the gist. 2014-12-11 11:47 GMT-05:00 Petr Krysl krysl...@gmail.com

Re: [julia-users] Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
One more note: I conjectured that perhaps the compiler was not able to infer correctly the type of the matrices, so I hardwired (in the actual FE code) Jac = 1.0; gradN = gradNparams[j]/(J); # get rid of Rm for the moment About 10% less memory used, runtime about the same. So, no effect

Re: [julia-users] Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
in column-major order (same as Fortran) so that nested loops should arrange that the first subscripts of multidimensional arrays are varied most rapidly. --Peter On Thursday, December 11, 2014 9:47:33 AM UTC-8, Petr Krysl wrote: One more note: I conjectured that perhaps the compiler was not able

[julia-users] Re: Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
bytes allocated) DeVectorized InBounds: elapsed time: 0.032812311 seconds (128 bytes allocated) Error norm deVec: 0.0 Error norm inBnd: 0.0 On Thursday, December 11, 2014 5:47:01 PM UTC+1, Petr Krysl wrote: Acting upon the advice that replacing matrix-matrix multiplications in vectorized form

[julia-users] Re: Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
Everybody: Thank you very much for your advice. I believe that I have gotten the loops working now. The method conductivity(), 2 million triangles With loops expanded: 25.294999069 seconds (5253831296 bytes With matrix operations: 29.744513256 seconds (6564763296 So now the loops win by

Re: [julia-users] Re: Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
John, I hear you. I agree with you that type instability is not very helpful, and indicates problems with program design. However, I believe that provided the program cannot resolve the types properly (as it couldn't in the original design of my program, because I haven't provided

Re: [julia-users] Re: Aren't loops supposed to be faster?

2014-12-11 Thread Petr Krysl
from the point of ambiguity. -- John On Dec 12, 2014, at 12:20 AM, Petr Krysl krysl...@gmail.com javascript: wrote: John, I hear you. I agree with you that type instability is not very helpful, and indicates problems with program design. However, I believe

[julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-10 Thread Petr Krysl
Well, temporary array was also on my mind. However, things are I believe a little bit more complicated. Here is the code with three timed options. As you can see, the first two options are the fast one (multiplication with a scalar) and the slow one (multiplication with a one by one

[julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-10 Thread Petr Krysl
between 1 and 2 so HUUUGE? I think this calls for someone who wrote the compiler. Guys? Thanks a bunch, P On Wednesday, December 10, 2014 12:51:26 PM UTC-8, Petr Krysl wrote: Actually: option (4) was also tested: # 16.333766821 seconds (3008899660 bytes fs[1]= f; fs *= (Jac * w[j

Re: [julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-10 Thread Petr Krysl
long email chains. --Tim On Wednesday, December 10, 2014 02:35:38 PM Petr Krysl wrote: I don't know if this is correct, but here is a guess: Option 3 still requires a temp array ( to calculate the result of the paren fs= ([f] * Jac * w[j]); ), and option 4 eliminates that temp

Re: [julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-10 Thread Petr Krysl
chains. --Tim On Wednesday, December 10, 2014 02:35:38 PM Petr Krysl wrote: I don't know if this is correct, but here is a guess: Option 3 still requires a temp array ( to calculate the result of the paren fs= ([f] * Jac * w[j]); ), and option 4 eliminates that temp. The cost

Re: [julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-10 Thread Petr Krysl
, December 10, 2014 07:54:00 PM Petr Krysl wrote: The code is really short: N=200 function doit1(N) Fe=zeros(3,1);Ns=zeros(3,1)+1.0;f=-6.0;Jac=1.0; for i=1:N Fe += Ns * (f * Jac); end Fe end function doit2(N) Fe

Re: [julia-users] Re: Article on finite element programming in Julia

2014-12-08 Thread Petr Krysl
Thanks! On Monday, December 8, 2014 2:09:27 AM UTC-8, Mauro wrote: There was one talk about FEM at JuliaCon: https://www.youtube.com/watch?v=8wx6apk3xQs On Mon, 2014-12-08 at 04:48, Petr Krysl krysl...@gmail.com javascript: wrote: Bit more optimization: Amuthan's code: 29

[julia-users] Finite element code in Julia: Curious overhead in .* product

2014-12-08 Thread Petr Krysl
I posted a message yesterday about a simple port of fragments a finite element code to solve the heat conduction equation. The Julia port was compared to the original Matlab toolkit FinEALE and the Julia code presented last year by Amuthan:

[julia-users] Re: Finite element code in Julia: Curious overhead in .* product

2014-12-08 Thread Petr Krysl
Hi Robert, At this point I am really impressed with Julia. Consequently, I am tempted to rewrite my Matlab toolkit FinEALE (https://github.com/PetrKryslUCSD/FinEALE) in Julia and to implement further research ideas in this new environment. What did you have in mind? Petr pkr...@ucsd.edu

[julia-users] THANKS to Julia core developers!

2014-12-08 Thread Petr Krysl
, THANKS! Petr Krysl

Re: [julia-users] Re: Article on finite element programming in Julia

2014-12-07 Thread Petr Krysl
Hello everybody, I found Amuthan 's blog a while back, but only about two weeks ago I found the time to look seriously at Julia. What I found was very encouraging. For a variety of teaching and research purposes I maintain a Matlab FEA toolkit called FinEALE. It is about 80,000 lines of

Re: [julia-users] Re: Article on finite element programming in Julia

2014-12-07 Thread Petr Krysl
...@mac.com javascript: On Dec 7, 2014, at 10:21 AM, Petr Krysl krysl...@gmail.com javascript: wrote: Hello everybody, I found Amuthan 's blog a while back, but only about two weeks ago I found the time to look seriously at Julia. What I found was very encouraging. For a variety

Re: [julia-users] Re: Article on finite element programming in Julia

2014-12-07 Thread Petr Krysl
Bit more optimization: Amuthan's code: 29 seconds J FinEALE: 54 seconds Matlab FinEALE: 810 seconds Petr On Sunday, December 7, 2014 1:45:28 PM UTC-8, Petr Krysl wrote: Sorry: minor correction. I mistakenly timed also output to a VTK file for paraview postprocessing. This being an ASCII

[julia-users] Is everything visible within a module by default?

2014-12-06 Thread Petr Krysl
When I qualify the names of functions or types within a module that I am using with the name of the module, as for instance fens1=FENodeSetModule.FENodeSet(xyz=[X[:,1] X[:,2]]), I can access everything, even though the module does not export anything. Is that as expected? Thanks, Petr

[julia-users] Re: Is everything visible within a module by default?

2014-12-06 Thread Petr Krysl
, 2014 5:34:32 PM UTC-6, Petr Krysl wrote: When I qualify the names of functions or types within a module that I am using with the name of the module, as for instance fens1=FENodeSetModule.FENodeSet(xyz=[X[:,1] X[:,2]]), I can access everything, even though the module does not export

[julia-users] Re: Is everything visible within a module by default?

2014-12-06 Thread Petr Krysl
I see, I missed the bit about the non-exported function p. But that kind of worries me (am I the only one?). If I can get at anything within a module, nothing is ever protected? I cannot have a private function, shared only by the functions within the module? In the same vein: there are no

[julia-users] Documentation in the source code

2014-12-05 Thread Petr Krysl
Hello, Does anyone know how the document functions and types (and modules) in the Julia style? I looked at the source code for some of the Base functions and I couldn't really find any documentation attached to those functions. Thanks, Petr

[julia-users] sortrows: where is the index vector?

2014-12-04 Thread Petr Krysl
Can I get the index vector from this function? This is what the Matlab version does: it returns the sorted matrix and the permutation vector. There doesn't seem to be a facility for this in Julia, unless I missed it (possible). Does anyone have a code that would do this? By the way, I ran

[julia-users] Re: sortrows: where is the index vector?

2014-12-04 Thread Petr Krysl
this gets done, you can probably get the permutation by concatenating a new column at the end, which is [1:m]. Then do sortrows on this, and the last column should be the permutation vector. -viral On Friday, December 5, 2014 8:01:17 AM UTC+5:30, Petr Krysl wrote: Can I get the index vector

Re: [julia-users] Re: Text editor for coding Julia: Atom vs Light Table vs Bracket

2014-12-02 Thread Petr Krysl
Could you please explain where to find profile()? I run LT on Windows 7, and there is no mention of profile view anywhere. Thanks, Petr On Sunday, November 30, 2014 12:05:03 PM UTC-8, Valentin Churavy wrote: So one argument feature wise for Juno/Lightable is the good integration of

Re: [julia-users] Re: Text editor for coding Julia: Atom vs Light Table vs Bracket

2014-12-02 Thread Petr Krysl
Mike, I'm not sure I use Juno /LT correctly, but I cannot run an example that uses a module. The module file is in the workspace, but control-shift-enter results in the message of - Error evaluating C:\Users\pkrysl\Documents\Research\Software folder\FEA software

  1   2   >