I have an update on where the issue is coming from.

I commented out the code for "pos[k+1] <- M[i,j]" and the if statement for
time = 10^4, 10^5, 10^6, 10^7 and the storage and everything ran fast(er).
Next I added back in the "pos" statements and still runtimes were good
(around 20 minutes).

So I'm left with something is causing problems in:

## Store state at time 10^4, 10^5, 10^6, 10^7
if( k %in% c(10^4,10^5,10^6,10^7) ){
q <- q+1
 Out[[q]] <- M
}

Would there be any reason R is executing the statements inside the "if"
before getting to the logical check?
Maybe R is written to hope for the best outcome (TRUE) and will just throw
out its work if the logic comes up FALSE?
I guess I can always break the for loop up into four parts and store the
state at the end of each, but thats an unsatisfying solution to me.


Jim, I like the suggestion of just pulling one big sample, but since I can
get the runtimes under 30 minutes just by removing the storage piece I doubt
I would see any noticeable changes by pulling large sample vectors.

Thanks,
Michael

On Tue, Oct 26, 2010 at 6:22 AM, Jim Lemon <jim@bitwrit.com.au> wrote:

> On 10/26/2010 04:50 PM, Michael D wrote:
>
>> So I'm in a stochastic simulations class and I having issues with the
>> amount
>> of time it takes to run the Ising model.
>>
>> I usually don't like to attach the code I'm running, since it will
>> probably
>> make me look like a fool, but I figure its the best way I can find any
>> bits
>> I can speed up run time.
>>
>> As for the goals of the exercise:
>> I need the state of the system at time=1, 10k, 100k, 1mill, and 10mill
>> and the percentage of vertices with positive spin at all t
>>
>> Just to be clear, i'm not expecting anyone to tell me how to program this
>> model, cause I know what I have works for this exercise, but it takes far
>> too long to run and I'd like to speed it up by replacing slow operations
>> wherever possible.
>>
>>  Hi Michael,
> One bottleneck is probably the sampling. If it doesn't grab too much
> memory, setting up a vector of the samples (maybe a million at a time if 10
> million is too big - might be able to rewrite your sample vector when you
> store the state) and using k (and an offset if you don't have one big
> vector) to index it will give you some speed.
>
> Jim
>
>

	[[alternative HTML version deleted]]

