Можно его распараллелить, только параллелится он не по коду, а наиболее эффективным способом - по исходным данным (каждое ядро считает свой хэш, подставляя в заголовок блока своё значение nonce). В обычном CPU ядер 1-8 (многофункциональных), в ASIC'е - 100500 (умеющих только считать хэш). В GPU минипрограммки не зашиты, в современные видеокарты можно загружать и выполнять любой код (в рамках допустимого для этой видеокарты набора инструкций, разумеется). Количество ядер в GPU - несколько сотен или тысяч.