threads / discuss / 19646

git and multiple cores

Subject: git and multiple cores

## tl;dr

6 messages between Jun 2, 2009 and Jun 2, 2009.

replies: 5people: 4as markdown or json

Chris Friesen· Jun 2, 2009, 22:40 UTC · lore

I'm using git 1.6.1.3 and it seems to be limited to a single core. Given that I've seen cases where the cpu has been basically pinned for minutes on end (initial clone of a repository, for instance) has there been any discussion of taking advantage of multiple cores?

Chris
Peter Harris· Jun 2, 2009, 22:55 UTC · re: Chris Friesen · lore

Re: git and multiple cores

On Tue, Jun 2, 2009 at 6:40 PM, Chris Friesen wrote:
Show 5 quoted lines
>
> I'm using git 1.6.1.3 and it seems to be limited to a single core.
> Given that I've seen cases where the cpu has been basically pinned for
> minutes on end (initial clone of a repository, for instance) has there
> been any discussion of taking advantage of multiple cores?
Sounds like you're mostly concerned about packing.

The good news is, your version of git already has a threaded packer. You just need to enable it. See "pack.threads" in "git help config".

1.6.2 and newer use multiple threads by default.
Peter Harris
Shawn O. Pearce· Jun 2, 2009, 23:02 UTC · re: Peter Harris · lore

Re: git and multiple cores

Peter Harris <git@peter.is-a-geek.org> wrote:
Show 13 quoted lines
> On Tue, Jun 2, 2009 at 6:40 PM, Chris Friesen wrote:
> >
> > I'm using git 1.6.1.3 and it seems to be limited to a single core.
> > Given that I've seen cases where the cpu has been basically pinned for
> > minutes on end (initial clone of a repository, for instance) has there
> > been any discussion of taking advantage of multiple cores?
> 
> Sounds like you're mostly concerned about packing.
> 
> The good news is, your version of git already has a threaded packer.
> You just need to enable it. See "pack.threads" in "git help config".
> 
> 1.6.2 and newer use multiple threads by default.
True, but he was talking about initial clone, which on the client
side is git-index-pack.  Which is not threaded.
 
-- 
Shawn.
Peter Harris· Jun 2, 2009, 23:12 UTC · re: Shawn O. Pearce · lore

Re: git and multiple cores

On Tue, Jun 2, 2009 at 7:02 PM, Shawn O. Pearce wrote:
Show 17 quoted lines
> Peter Harris <git@peter.is-a-geek.org> wrote:
>> On Tue, Jun 2, 2009 at 6:40 PM, Chris Friesen wrote:
>> >
>> > I'm using git 1.6.1.3 and it seems to be limited to a single core.
>> > Given that I've seen cases where the cpu has been basically pinned for
>> > minutes on end (initial clone of a repository, for instance) has there
>> > been any discussion of taking advantage of multiple cores?
>>
>> Sounds like you're mostly concerned about packing.
>>
>> The good news is, your version of git already has a threaded packer.
>> You just need to enable it. See "pack.threads" in "git help config".
>>
>> 1.6.2 and newer use multiple threads by default.
>
> True, but he was talking about initial clone, which on the client
> side is git-index-pack.  Which is not threaded.
Ah. I thought he was talking about the server side. My mistake.
Peter Harris
Chris Friesen· Jun 2, 2009, 23:29 UTC · re: Peter Harris · lore

Re: git and multiple cores

Peter Harris wrote:
Show 23 quoted lines
> On Tue, Jun 2, 2009 at 7:02 PM, Shawn O. Pearce wrote:
> 
>>Peter Harris <git@peter.is-a-geek.org> wrote:
>>
>>>On Tue, Jun 2, 2009 at 6:40 PM, Chris Friesen wrote:
>>>
>>>>I'm using git 1.6.1.3 and it seems to be limited to a single core.
>>>>Given that I've seen cases where the cpu has been basically pinned for
>>>>minutes on end (initial clone of a repository, for instance) has there
>>>>been any discussion of taking advantage of multiple cores?
>>>
>>>Sounds like you're mostly concerned about packing.
>>>
>>>The good news is, your version of git already has a threaded packer.
>>>You just need to enable it. See "pack.threads" in "git help config".
>>>
>>>1.6.2 and newer use multiple threads by default.
>>
>>True, but he was talking about initial clone, which on the client
>>side is git-index-pack.  Which is not threaded.
> 
> 
> Ah. I thought he was talking about the server side. My mistake.

Sorry, I wasn't clear. I was talking about the client side, although the server side information is useful to have.

I have a 4-way machine as a client, and it just seemed odd that git could only use one core.

Chris
Nicolas Pitre· Jun 2, 2009, 23:54 UTC · re: Chris Friesen · lore

Re: git and multiple cores

On Tue, 2 Jun 2009, Chris Friesen wrote:
Show 14 quoted lines
> Peter Harris wrote:
> > On Tue, Jun 2, 2009 at 7:02 PM, Shawn O. Pearce wrote:
> > 
> >>True, but he was talking about initial clone, which on the client
> >>side is git-index-pack.  Which is not threaded.
> > 
> > 
> > Ah. I thought he was talking about the server side. My mistake.
> 
> Sorry, I wasn't clear.  I was talking about the client side, although
> the server side information is useful to have.
> 
> I have a 4-way machine as a client, and it just seemed odd that git
> could only use one core.

It can use them all when repacking or pushing. But on a clone or fetch your client machine deals with incoming data using index-pack which is much more trickier to thread.

Nicolas

← back to recent threads