For particles you assign global BMAP pointers. Unless you create them dynamically/ manually yourself they are created and allocated at game start (this is while the default acknex compile window is still active, printing out the "..." dots).
Like here:
BMAP* coolParticle_tga = "coolParticle.tga";
void p_coolParticle(PARTICLE* p)
{
p.bmap = coolParticle_tga;
...
}
You could write
BMAP* coolParticle_tga = NULL;
and then bmap_create the image at runtime - once. Once is the keyword though, as there's no memory allocation in terms of image memory done for particles or their instances. So... you wouldn't have to worry about that case normally.
Btw 2048^2 sounds awfully large for a particle, do you really need that size?