[R] increase the usage of CPU and Memory
Oliver Ruebenacker
curoli at gmail.com
Tue Jun 26 20:44:24 CEST 2012
Hello Christopher,
If a process has data to write to hard disk, the data is usually
written to a buffer in memory, and from there it is written to the
hard disk independently of the CPU. Since writing to memory is much
faster than writing to hard disk, this allows the process to run
faster. To the process, it appears as if the data is already on disk.
If, however, the buffer runs full, an attempt by a process to write
more data will cause the process to wait until space is available in
the buffer. If a process spends time waiting, it means it does not use
all the CPU it could otherwise.
I don't know how much input is buffered, but since only the process
knows where it will request input from next, this limits ways to
buffer input. I'm assuming though, that if you open a file and read
the first few bytes, some more bytes may be read into a buffer since
the process is likely to request them next. But in any case, input
form disk or network is almost certain to cause waiting times and
therefore decreases used CPU time.
Take care
Oliver
On Tue, Jun 26, 2012 at 1:53 PM, Christofer Bogaso
<bogaso.christofer at gmail.com> wrote:
> On 26-06-2012 16:33, Oliver Ruebenacker wrote:
>>
>> Hello Xi,
>>
>> If a program has input or output to disk or network, this may cause
>> it to wait and not use the available CPU.
>>
>> Output is usually buffered, but may cause delay if the buffer gets
>> full (I'm not sure though whether this is an issue with plenty of
>> memory available)
>>
>> Take care
>> Oliver
>>
>> On Mon, Jun 25, 2012 at 8:07 PM, Xi <amzhangxi at gmail.com> wrote:
>>>
>>> Dear All,
>>>
>>> I have been searching online for help increasing my R code more
>>> efficiently
>>> for almost a whole day, however, there is no solution to my case. So if
>>> anyone could give any clue to solve my problem, I would be very
>>> appreciate
>>> for you help. Thanks in advance.
>>>
>>> Here is my issue:
>>>
>>> My desktop is with i7-950 Quad-core CPU with 24Gb memory, and a NVIDIA
>>> GTX
>>> 480 graphic card, and I am using a 64-bit version of R under 64-bit
>>> Windows
>>> .
>>>
>>> I am running a "for" loop to generate a 461*5 matrix data, which is
>>> coming
>>> from the coefficients of 5 models. The loop would produce 5 values one
>>> time, and it will run 461 times in total. I have tried to run the code
>>> inside the loop just once, it will cost almost 10 seconds, so if
>>> we intuitively calculate the time of the whole loop will cost, it would
>>> be
>>> 4610 seconds, equal to almost one and a half hours, which is exactly the
>>> whole loop taking indeed. But I have to run this kinda loop for
>>> 30 data-sets!
>>>
>>> Although I thought I am using a not-bad at all desktop, I checked the
>>> usage
>>> of CPU and memory during my running R code, and found out the whole code
>>> just used 15% of CPU and 10% of memory. Does anyone have the same issue
>>> with me? or Does anyone know some methods to shorten the running time and
>>> increase the usage of CPU and memory?
>>>
>>> Many thanks,
>>> Xi
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> ______________________________________________
>>> R-help at r-project.org mailing list
>>> https://stat.ethz.ch/mailman/listinfo/r-help
>>> PLEASE do read the posting guide
>>> http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
>>
>>
>>
> Hi Oliver, can you please give some details on what you are meaning by
> 'Output is usually buffered'?
>
> Thanks and regards,
>
--
Oliver Ruebenacker, Bioinformatics and Network Analysis Consultant
President and Founder of Knowomics
(http://www.knowomics.com/wiki/Oliver_Ruebenacker)
Consultant at Predictive Medicine
(http://predmed.com/people/oliverruebenacker.html)
SBPAX: Turning Bio Knowledge into Math Models (http://www.sbpax.org)
More information about the R-help
mailing list