text:
LA Pizza; But what about Orange County ???
Name some favorites in Orange County.
I'll start it with Porkys
My top 3:
A Slice of NY - Seal Beach
Al's New York Cafe - Costa Mesa / Newport Beach
Nonna Lucci's - Huntington Beach
re: bluthcompany
I always hesitate to recommend LaRocco's because their restaurant is filthy.
re: mollygirl
LaRocco's San Clemente location is tiny but clean. Best pizza we've found in 25 years in South OC. Close seconds are Fratello's/Peppino's (several locations) and Antonucci's (Mission Viejo).
Pizzeria Ortica in Costa Mesa for restaurant pizza
Original Pizza in Newport Beach around 22nd street
re: Das Ubergeek
Have never heard of Luigi's, but their menu looks good with very traditional simple Italian cuisine. Is all of their food good....or do you just recommend the pizza. What about the ambiance and service?
re: josephnl
It's OK. I only go for the pizza. The ambiance is, well, casual. Service is OK. Some of the staff are a little... hm... eccentric.
re: Das Ubergeek
Used to love Luigi's--in their old location. Havn't gone back after our awful experience in the new location. Their lasagne used to be fantastic--is it still good? (maybe I could get take out)
re: Funwithfood
I don't know, honestly, lasagne is one of those things I make at home.
re: Das Ubergeek
I'll buy it from you next time! :)
re: Das Ubergeek
Love Luigi's. Disclaimer- my 11yo son's friend's dad & brother run the place. Son thinks that the pizza makes him pitch better (worked for Burt Blyleven)
Anotonucci's in Mission Viejo is excellent IMO (NY Style). Love the cheese pizza there.
Also really like the white pizza (and the others as well) at Johhnny's NY Pizza in Irvine (Culver at Portola).
Al's NY Cafe also (the meatball sandwich ain't bad either - ooh and they do a really good chicken parm sandwich !)
re: mikester
Antonucci's has never been NY Style or are you saying that you request it that way? In any case, the quality has slipped and I no longer feel that their price premium is warranted.
re: cdmedici
If Mozza OC will be anything even remotely resembling Mozza LA, they should stay in LA.
re: josephnl
Hate to say this, but I agree. I'm just talking about the pizza, not the ambiance or anything like that, which I actually like.
--That said, the crust has good flavor. Just not worth importing though.
I like Pino's Bistro, C/O 1st Street and Prospect, Tustin.
Great, fresh ingredients, including homemade sausage.
Newport Beach has a very good place for large thin crust pizza either by the slice or whole pie. The Pizza Bakery has some really good lunch specials which may have a slice or two, pasta, a salid a salid and drink ...
The Pizza Bakery
re: JeetJet
Tried the Pizza Bakery last week and will definitely be going back. Had the #2 lunch - slice w/salad. The slice is huge (for someone who's obsessed with portion size), but it all disappeared and I finished the salad for dinner. Thin crust, tasty.... almost as good as what I had in Spain a couple of years ago, and the best I've had in a long time.
re: Bogey153
Yeah, it is better than most and that makes the place popular for being so far from the main roads through Newport. My son lives near there and sometimes we get a slice and sit out front in our truck and eat, drink have a coke and from our windshield we watch the people go in and out, in and out....
If you like coffee there is a second reason to head back that way -- Kean Coffee
Kean Coffee
re: SmokeyDoke
I love Angelo's pizza. My family goes there all the time; we usually order it to go and pick it up at their little side street take out place. The thick dough is flavorful, the sauce and cheese is tasty and plentiful, and the toppings are fresh and wonderful. Just had one last night! Great stuff, and a north OC favorite.
re: aventinus
I like Tony's. But I'm from the East Coast so while it's really good and worth the trip, it doesn't scratch my "pizza" itch, the same way weird California pizzas with Beijing duck or shiitake mushrooms or Thai peanut sauce don't scratch my pizza itch.
re: aventinus
Tony's pies are fabulous. Be prepared to wait a little longer for your pie, as it's Chicago style and takes a little longer to cook, and it's not the cheapest pizza in the OC, but you definitely get what you pay for at Tony's. It really is a tremendous pizza.
I'd have to say my favorite places in the northern section of Orange County to eat pizza are Tony's, Angelo's & Vinci's in old Fullerton, and the old Marri's pizza across the street from the Disneyland Hotel in Anaheim, right off Katella and West Streets (It's a restaurant I've been going to for at least 30 years and it literally feels like home to my wife and I). All 3 of those places make consitently good pizza.
re: goodvibe61
Marri's isn't bad pizza. Not the best in OC but not bad. It's at Katella and Walnut, though.
re: cdmedici
I also have had excellent pizza at Canaletto, and then the last time I was there, I had perhaps the worst pizza I have ever had. I like crispy pizza, and always request it as such. The last time I was there and ordered pizza, it was not only not crispy, but the dough in the center was raw...floppy and uncooked...and the pizza was surrounded by a ring of oil on the serving plate. It was dreadful. I did not have time to stay for them to rebake one, but on the way out I said to a manager that I was unhappy and was advised to post a complaint via email. I did so more than two weeks ago, and have heard nothting by way of reply. Not good!
re: josephnl
They must have some consistency issues. Every time I have gone I have had the octopus. First two times where brilliant, the third time was totally different in flavor...and not in a good way.
re: chris1621
I actually think that Pizza Shack is great all around neighborhood pizza. They used to have this Monday special that my bro told me about. I dunno if they still have it, since I don't eat much pizza these days.
re: 1000steps
Agreed, if you like a cracker type of crust which I don't. The ingredients however are very good.
re: stanr
Definitely agree that Cucina Alessa in Newport Beach has far better pizza than Ortica. Unfortunately Ortica is not a terribly high bar to surpass, and it's really a shame. David Myers (the owner) is an excellent chef as evidenced by how wonderful Sona in L.A. was when it first opened. Unfortunately IMHO Sona has slipped quite a bit, and I am totally unimpressed with Chef Myers other ventures...Comme Ca (in L.A., and promised for OC) and Pizzeria Ortica.
Has anyone been to both Cucina Alessa's? Wondering how the food compares between the two.
re: josephnl
okay I'm gonna put my foot down. I posted a review of Cucina Alessa's pizza and my wife and I agreed that we'd never order it again. Unless we had the substitute chef (it was the Newport location) then people have really weird taste in pizza. To give you an idea of my taste- A16 in SF is the best I've ever had.
re: meltedcheese
I agree that Alessa doesn't have great pizza. I have never said so. I said that I thought their pizza was better than that served at Ortica, and also said that this was not a high standard to surpass. I don't think that there is particularly good pizza anywhere in OC, and I'm not even sure about L.A. (please don't tell me that Mozza is great...I will disagree). I had wonderful pizza one or two times at Canaletto in Newport when they first opened, but the last time I was there, I was served one of the worst pizzas I have ever had. So, from my perspective, the search for great pizza in OC goes on.
If you see the two top posts here. You will see the problem in Orange County. There is no and I mean no A- let alone A+ pizza in Orange County. There is pretty good pizza, but no GREAT pizza.
I'm going to go to LA next week or the week after and hit every pizza place mentioned and let you know if it's the same in LA.
BTW B+ pizza is pretty good with the right root beer or beer.
I have always loved Numero Uno since the seventies. Their slightly sweet thick-crust is my all-time favorite. This once prolific chain has been dwindling in recent years and is on life support here. There used to be several locations in the OC, but the only one still open is in a strip mall on Adams at Magnolia in Huntington Beach. They have a larger presence in the SFV and around greater LA.
re: Unnamed Source
I too have always liked Numero Uno- it's not great, but there's something about it. Have you ever had those round dough balls that are swimming in butter.
It's funny. Maybe since a good pizza is so simple it's hard to make pizza truly great. Plus how many main dishes have a bread as such an important component of the dish- were a part of the bread if not all has to be dry and crisp. It has to be crispy but there's sauce and cheese and fats and toppings...
re: meltedcheese
If I were served a pizza with a crisp crust I would think poorly of it. Pizza crust is chewy and flavourful.
re: Das Ubergeek
It's a matter of taste. I personally prefer a slightly crispy pizza. When I pick up a piece, I don't like the end to fold down. To each his own. The best pizza I have ever had was in a little neighborhood joint just outside of Montalcino (Tuscany), and it was pretty crispy...but definitely not like a cracker!
re: Das Ubergeek
Gotta go with The Geek here. The generally-accepted 'most popular pizza place' down here in San Clemente is Sonny's, but I am not a fan of their pizza because the bottom has been just a little too crispy the times I've tried it. And............. all due respect to josephnl, my New York upbringing REQUIRES that the end folds down just a bit.
re: Midlife
I'm from New York also...and I'll take a slightly floppy New York pizza over the stuff they call pizza here any day. Maybe I didn't express myself as well as I should have. I don't really like pizza to be crispy like a cracker, on the other hand when the center folds down too much, to me it sometimes seems to me to be not fully baked, or else there is too much or too wet a topping. It's a fine line for me between inadequately baked, and too crispy.
re: Das Ubergeek
Depends what you're looking for. Slices have a slightly crispy crust and are very thin. Those of us from that part of the world know what I mean. The nearest to a slice that I've had in OC is at Mammalucco's in Brea. They're from the Bronx so the pizza is a little different than that from other boroughs.
What about Pizza e Vino, in Rancho Santa Margarita? Neopolitan style thin crust, using a wood-burning oven. Open for dinner only.
re: choctastic
In fact, I was just there (hard to find) but it's easily the best pizza I've had so far in OC and honestly while the flavor of the crust is arguably better at Pizzeria Mozza, Mozza is slightly too crispy to me. I like the chaw of a great bread and Pizza e Vino's pizza has a pretty damn nice stretchy, chewy bite, imho. I wish I had a camera so i could do a pic of the upskirt. Nice charring, great chew on the crust, great toppings. All around great pizza. I got the margarita today, with buffalo mozzarella. $17. Not having to drive to freaking LA: priceless.
re: choctastic
lol. "the upskirt." spoken like a food blogger.
re: choctastic
Glad you tried it! Dough flavor does vary slightly at PeV... I assume according to how mature it is on any given day.
To revisit earlier PeV thoughts: http://chowhound.chow.com/topics/600166
re: Allmodcons
Another thing i don't like about Mozza is that the pizza is so oily. I have to mop up all the oil before i want to eat it.
BTW, thanks to Allmodcons for originally tipping us off to this place!
re: choctastic
I think if there are criticisms of this place, it would be that it is expensive. My pie was an individual and about $15, $17, including tax. That's actually more expensive than Pizzeria Mozza. Also, the dough could be aged more, but hey for OC, I'll take it! I like this place a lot, but i want to play devil's advocate.
re: choctastic
You know how dough is different every day... for me, the dough @ PeV has been closer to the too-mature end of the spectrum more often than the too-young. But exceedingly small increments, for what is a very good product.
Pricewise I have no problem... maybe it was the $5 supplement for the bufala? Sometimes that (kind of high) tariff is totally worth it to me, like on their four cheese. Really good.
re: Allmodcons
I thought it was totally worth it, but I was trying to head off the detractors. I really liked the pizza here! It's in Rancho Santa Margarita! Whodathunk!
re: choctastic
Ya, I know!
Now I want a four cheese really bad.
re: choctastic
Just went to Pizza e Vino and agree that it's a bit hard to find...signage is terrible. Go into parking lot and go down stairs towards the lake. Found the pizza to be excellent...perhaps the best I've had in OC. Crust is pretty darn perfect; thin and almost, but not quite crispy in the center, and real chewy on the periphery. Toppings are first rate. Good salads, salume, and antipasti. Small but excellent wine list. Good service and caring management. It was very quiet in the restaurant tonight and it should be busier. Give it a go...it's tasty stuff!
re: josephnl
Really need to try this place. We used to live nearby and know exactly where it is. It's been several other restaurants and there was/is(?) a relatively (for RSM) decent Chinese take-out in the same courtyard.
Thanks to everyone who's posted about it.
re: choctastic
Excellent suggestion, this place is great. Just went there the other night with friends, and while they were out of burrata the pizza was great. Nice wine list, too, and the outdoor seating is pleasant.
I like Sonny's in San Clemente as well. Rocco's in Mission Viejo at the Kaliedescope Center has some very tasty gourmet pizzas. I especially like their white pizza, and the chicken and garlic style. Their crust is a bit bland for me though.
If anyone wishes to tout Ortica as an option, please read this thread. http://chowhound.chow.com/topics/622016
I'm not the only one who thought it failed to bring the goods.
Hate to be all negative, but I am always dissappointed by OC's pizza. I am always let down, wanting more, and uninspired by this regions bad Italian cooking.
Just save the money, but a $1.29 bag of dough from TJ's and toss it on the grill with some sauce, fresh mozz and basil. Chances are even if you are a horrible cook it will come out better then what you can get around here.
re: jroxybabe19
Even with pizza being one of those few foods that carries with it the heavy burden of having to live up to the standards of where people grew up, where they've traveled, what their family served...... I really find your position a bit hard to take.
There was a recent thread here in which a poster insisted that there was not one single upscale restaurant in OC at which he would suffer through a meal. There's a point at which it seems that there needs to be just a bit more reality intervening.
If you REALLY feel that way, so be it. I can only feel for you and your transportation costs...... to wherever you drive to eat.
my favorites:
woodfired pizza - nicks in costa mesa on harbor blvd
deep dish or stuft pizza - tony's little italy in placentia
dirt cheap pizza - laventina's in newport beach
honorable mention - italian cravings in huntington beach
still working my way through OC pizza places...
pizza d'oro (costa mesa, FV, HB) - while the giant slice is a nice novelty, pizzas are good, but not my favorite... much prefered over all the chain places though
roma d'italia (tustin) - thought it was alright, nothign special though... a little greasier than I like
sabatino's (newport) - i liked it, but i thought it was a bit pricey for pizza...
haus of pizza, hotties pizza, oc pizza (all in cost a mesa) - i feel the same way about them as i do sabatino's
soprano's in costa mesa - only had pizza there once, so I don't think I can form a full opinon on it yet... still need to go back
same with napa valley pizza
gina's in irvine - i remember going there (i forget what it was called way back in the day) when i first got to southern california... pizza wasn't great, but collecting box tops for free pizza was always good for a poor college student...
peppino's in lake forest - i kind of feel the same way about this place as i do pizza d'oro... not bad, but not great.
z pizza, bj's, pizza hut, little ceasars, dominos, papa johns, etc - i'll go to costco before those places
Thanks choctastic and Allmodcons for bringing Pizza e Vino back to the forefront. We had a very enjoyable meal there. The pizza is as described in that it's on the expensive side and the ingredients are a little sparse but, the dough was very flavorful with just the right amount of char and consistency. We'll be back as it's very close for us.
re: christoofat
Apparently, they also have a pizza truck for catered events. Perhaps Allmodcons can shed some light on that. I didn't hear much beyond the fact that there's a truck.
re: choctastic
Equipped with an Italian wood burning oven?
re: JAB
My question exactly.
And the answer is: YES. The owner had another imported pizza oven built into a custom trailer, as I found out tonight over the special w/burrata, proscuitto, and microbasil that Christoofat mentioned in the other thread. So good..
Longer writeup here: http://www.ocfoodnation.com/EatNice/i...
I'm a huge fan of one of the "hidden gem in a strip mall" locations -, my favorite being what used to be an old Sbarro which was converted into a new & sexy buy-by-the-slice or buy-the-whole thing pizzeria & italian food haven. I LOVE it for lunch, and some days, am in awe that it doesn't have a line out the door & around the block! I guess it's still my little secret… :) It's small & quick serve - but those are the perks too! They have liquor & beer too & i heard will be doing some corporate happy hour stuff soon! :)
Alto Italia
2 Hutton Centre
Santa Ana, CA 92707
(right by the Skyline highrises @ McArthur & the 55)


text:
Transparently leveraging huge pages on Linux® -- which allow memory page table entries to cover larger (up to multiple megabytes) ranges of contiguous physical memory -- has become much easier with the recent introduction of Version 1 of the libhugetlbfs library on SourceForge (see Resources). The libhugetlbfs library has been updated for SUSE Linux Enterprise Server 10 (SLES 10) and is available for Red Hat Enterprise Server Linux 5 (RHEL 5). Customers use it for benchmarking activities to improve select applications on POWER, Intel®, and AMD systems with Linux. With a focus on IBM POWER processor-based systems with 16MB page sizes, this article provides an introduction to libhugetlbfs, including the following:
- Considerations of when and when not to use libhugetlbfs
- Instructions on how to install and set up libhugetlbfs
- Information on providing system access control to the huge pages
- A simple code example for backing
mallocand application
bsssections with huge pages
- Examples of industry-standard external publishes using libhugetlbfs
For Linux on POWER systems, the libhugetlbfs library is supported today on SLES 10 and RHEL 5 systems where 16MB pages are available. This includes POWER4, POWER5, POWER5+ systems, and BladeCenter® JS20 and BladeCenter JS21.
While the focus of this article is using POWER systems, libhugetlbfs support is available on Linux for Intel and AMD-based systems that support huge pages. For those systems, the hardware page sizes are different but the approach is the same, and testing that has shown good performance improvements can be seen on those Linux systems as well.
No source code changes to your application
In this article, transparently leveraging huge pages means that applications can take advantage of the performance advantages of the larger hardware page sizes with no source code changes. Linux already supports exploiting system huge pages, but applications have to be specifically coded to take advantage of the feature. Examples of this support exists in general system software products like the latest Java™ engines and the various large database vendor products.
If you use libhugetlbfs on 32-bit or 64-bit applications with the platforms listed above, your application requires no source code changes to take advantage of 16MB huge pages. You have several options available to you, which I describe below:
- Backing
.data, and
.textsections with huge pages: You can specify that you want all three sections (the
.bsssection, the
.datasection, and the
.textsection) loaded into huge pages. The
.bsssection is the uninitialized global data structures in a program (for example, a large Fortran array). The
.bsssection can be very large, with many compute intensive workloads declaring and using Fortran arrays that can use many gigabytes of memory. The
.datasection is the initialized global variables and data structures (rarely that big of a piece) of an application program, and the
.textsection as the executable text (the binary code) itself. To specify that these application sections be backed by system huge pages, all you need to do is relink your executable.
- Backing just the
.bsssection: A common use of libhugetlbfs for Fortran programs is to specify that just the
.bsssection be backed by system huge pages. The
.datasection and the
.textsections continue to be backed by normal hardware base page sizes. As with the first approach, using libhugetlbfs requires a simple relink of the executable.
- Backing
mallocwith huge pages: You can specify that you want run time
malloccalls to use memory backed by 16MB pages. This includes the
mallocderivatives (
realloc, and so forth) as the underlying
mallocinvocation is the system call being overridden. The libhugetlbfs library automatically manages all of the
mallocrequests in the 16MB pages. You can use this approach with any executable and it does not need a specially linked executable.
Before you actually use libhugetlbfs, there are some key considerations you need to keep in mind, as follows:
- For the purposes of developing an application that is supported in a customer environment, you need a shipping and supported distribution of Linux. For SUSE, this is SLES 10. For Red Hat, this is Red Hat Enterprise Linux 5 (RHEL 5) that includes the libhugetlbfs libraries. SLES 9 and RHEL 4 are not covered in this article, since they do not come with the correct kernel support for libhugetlbfs. Experienced Linux users can always get a recent mainline kernel that provides the libhugetlbfs kernel functionality required, but this would not be a customer supported configuration.
- Huge pages for Linux on POWER are the 16MB huge pages that are defined prior to usage (either on boot or by a root user) and are pinned by the operating system in main memory when they are used. 16MB huge pages on POWER systems are contiguous pieces of 16MB physical memory.
- On POWER systems, the Linux community refers to these pages as "huge pages," while the traditional AIX® and IBM POWER hardware teams refer to these pages as "large pages." Since terminology in the community and industry is ambiguous, I recommend clarifying the usage with the actual size of the page being used. In the case of this article, I refer to 16MB huge pages and I use the phrases "large pages" and "huge pages" to mean the same thing -- that is, 16MB huge pages.
- You can use 16MB huge pages in virtualized logical partitions (LPARs) on Linux on POWER or in full system LPARs that have all of the resources assigned to the partition.
- A special filesystem just for libhugetlbfs should be set up to only allow a specified group of users access to the pool of available huge pages. I provide examples of this later in this article. This is important for security reasons and to control access to a very limited and valuable resource (physical memory) on a system.
- Linux provides the ability to dynamically manage, specify, request, and return the 16MB huge pages by a root user. Availability of 16MB huge pages is dependent on the system availability of contiguous physical memory when requested by a root user. 16MB huge pages can be reserved at boot time.
- When requesting large amounts of huge pages, you need to consider memory fragmentation. The longer a system is running, the more likely main memory will become fragmented with bits and pieces of pinned and permanent kernel memory, which makes claiming each individual contiguous 16MB huge page increasingly more difficult. If large amounts of 16MB huge pages is required, it is recommended that you reserve these at system boot time.
Some restrictions to using libhugetlbfs
System huge pages are a limited and valuable system resource. There are several restrictions to consider when using libhugetlbfs, as follows:
- On Linux, an application that uses libhugetlbfs and huge pages must have all
of the huge pages available and free when needed at run time, or the application
is terminated at run time when the huge page request fails. This can be an
important consideration under these circumstances:
- The application uses a lot of memory that might require more 16MB huge pages than are available.
- The system doesn't have enough physical memory to support loading the executable and all of the specified pages.
- The ability of the operating system to "fall back" to normal pages when it runs out of huge pages is an aspect of the Linux operating system which has proven difficult to implement in a nice generic fashion. Community efforts are continuing, with various prototypes and approaches being considered. As system hardware becomes more flexible with respect to the number of page sizes supported, the hope is that more flexible controls emerge in the operating system.
- Not all applications or software solutions benefit from using huge pages. The primary performance improvement with leveraging huge pages is the reduction in Translation Lookaside Buffer (TLB) misses. It's generally recommended that you simply try your application with transparent huge pages and see whether that results in any tangible performance gains. Normal performance gains with libhugetlbfs can range from no gain to around 10 percent to 15 percent gain. Some applications actually see performance get worse. Many applications see little to no gain, so this approach is typically only used on specific applications for specific gains.
- In general, using libhugetlbfs is a specialized niche approach for improving performance on a limited set of applications. Classically, the approach is used for Fortran programs that use very large arrays of data and do a significant number of memory accesses, but the approach applies to any C, C++, or Fortran program.
- Applications with the
.textsection (the executable text) loaded into huge pages cannot be effectively profiled (for example, with
oprofile) or debugged (for example, with
gdb) since the executable itself is copied without symbols to anonymous huge pages and then run. Profiling would be helpful in some cases and work continues in the Linux community to extend this functionality.
- libhugetlbfs leverages dynamic linking facilities built into Linux. Therefore, statically linked executables cannot take advantage of the capabilities of libhugetlbfs.
Before beginning, I should review the sections in a generated executable. I'll demonstrate with a simple do-nothing C program. In the example below, I'll declare one large uninitialized array and one large initialized array.
Listing 1 shows a source file called
Listing 1. sections.c source file
#define ELEMENTS 1024*1024 static double bss_array[ELEMENTS]; static double data_array[ELEMENTS] = {5.0}; int main() { int i; for (i = 1; i < ELEMENTS; i++) { bss_array[i] = data_array[i]; } }
The key differences between a
bss array and a
data array is easy to see in the executable that you
generate in the next step. The differences between the
bss and
data arrays are as
- bss array -- This array is uninitialized data that is saved in the
.bsssection in the executable. This section does not take any space in the executable.
- data array -- This array is initialized data (non-zero) that must be
saved in the executable itself in the
.datasection. In this case above, with each double being 8 bytes, space in the executable is needed for 8*1024*1024 (8MB) bytes.
To see these attributes in the executable, compile the program and then display
the section information with the
readelf command. You
can see this illustrated in Listing 2.
Listing 2. Examples of sections of a C program
# cc sections.c -o sections # ls -l sections -rwxr-xr-x 1 root root 8400154 2006-12-03 18:52 sections # readelf -S sections There are 36 section headers, starting at offset 0x8012cc: Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .interp PROGBITS 10000154 000154 00000d 00 A 0 0 1 [ 2] .note.ABI-tag NOTE 10000164 000164 000020 00 A 0 0 4 ... [12] .text PROGBITS 100002f0 0002f0 0005b0 00 AX 0 0 16 [13] .fini PROGBITS 100008a0 0008a0 000038 00 AX 0 0 4 ... [23] .plt PROGBITS 10010a28 000a28 000008 00 WA 0 0 4 [24] .data PROGBITS 10010a30 000a30 800008 00 WA 0 0 8 [25] .bss NOBITS 10810a38 800a38 800008 00 WA 0 0 8 [26] .comment PROGBITS 00000000 800a38 0000d9 00 0 0 1 ...
In the output shown in Listing 2, observe the following:
- Size of the executable -- Notice that the size of the executable is 8400154, which is pretty big for a small program.
- .text -- The text is the executable instructions as generated by the compiler. For very large programs, libhugetlbfs can be directed to load this section into 16MB huge pages. In this example, the size of the executable text is only 5b0(hex) bytes, so you would not consider placing this into a 16MB huge page.
- .data -- The data section in this program has a size of 800008(hex)
bytes. That corresponds to the declared 8MB
dataarray. It is important to recognize that the initialized data is part of the executable itself, so this makes the executable much larger. You can tell this by looking at the offsets. The data section starts at offset
000a30, and the next section starts at offset
- .bss -- The
.bsssection in this program also has a size of 800008(hex) bytes, but it takes up no space in the executable. The offset for the start of the
.bsssection and the following section do not change; both are
Changing a data array to a bss array
To demonstrate what compilers often do with the initialization of arrays, change
the initialization of
data_array from 5.0 to 0.0 and
observe that this now becomes a
.bss section in the
executable, as shown here:
... #define ELEMENTS 1024*1024 static double bss_array[ELEMENTS]; static double data_array[ELEMENTS] = {0.0}; <---- zero'ing makes this a .bss array ...
If you initialize the
data_array to zero, the
compilers treat it just like the
.bss section. You need
to recompile -- the result is shown in Listing 3 below. Let's
look at the
.data section now.
Listing 3. Example of .data section now in .bss section
# cc sections.c -o sections # ls -l sections -rwxr-xr-x 1 root root 11546 2006-12-03 18:54 sections # readelf -S sections There are 36 section headers, starting at offset 0x12cc: Section Headers: [Nr] Name Type Addr Off Size ES Flg Lk Inf Al [ 0] NULL 00000000 000000 000000 00 0 0 0 [ 1] .interp PROGBITS 10000154 000154 00000d 00 A 0 0 1 [ 2] .note.ABI-tag NOTE 10000164 000164 000020 00 A 0 0 4 ... [12] .text PROGBITS 100002f0 0002f0 0005b0 00 AX 0 0 16 [13] .fini PROGBITS 100008a0 0008a0 000038 00 AX 0 0 4 ... [23] .plt PROGBITS 10010a28 000a28 000008 00 WA 0 0 4 [24] .data PROGBITS 10010a30 000a30 000008 00 WA 0 0 4 \ <----- No longer a data array [25] .bss NOBITS 10010a38 000a38 1000008 00 WA 0 0 8 \ <----- Now twice the size [26] .comment PROGBITS 00000000 000a38 0000d9 00 0 0 1 ...
Notice the size column and the offsets associated with the size. Here are details describing what has happened:
- Size of the executable -- The size of the executable is now only 11546 bytes.
- .data -- In the
.datasection, the size dropped from 800008(hex) in the previous example down to just 000008(hex). The
data_arrayis now treated as a
- .bss -- In the
.bsssection, the size is now double from the previous example, that is 1000008(hex), which is the now combined size of the two arrays (800000(hex) + 800000(hex) for the
data_array), but it doesn't take any "space" in the executable. The offsets in the following section didn't change.
Most applications use either uninitialized data declarations or use
malloc commands for large amounts of memory.
libhugetlbfs provides two easy ways to load both the
.bss section and the memory allocated from a
malloc command into system huge pages. libhugetlbfs
also provide a way to load the executable
.text section
and the
.data section into huge pages, but this isn't
as common as the
.bss sections and the memory allocated
by a
This section covers the procedures for downloading, installing, and setting up libhugetlbfs.
To set up a system with libhugetlbfs and define the system huge pages, you need root access to the system. I'll show ways that a non-root user can be defined to use the huge pages once the system has been set up.
To install libhugetlbfs, there are several ways:
- If you are registered with SUSE support, you have access to the latest
libhugetlbfs rpms from the Novell SUSE maintweb support. (Note: This Web
site is only available to registered users.) At the time of this writing, the
latest recommended (and supported) rpms available for SLES 10 as follows:
- libhugetlbfs-1.0.1-1.4.ppc.rpm
- libhugetlbfs-64bit-1.0.1-1.4.ppc.rpm
The default libhugetlbfs libraries that were provided when SLES 10 was initially available are old, and I don't recommend bothering with them. These are:
- libhugetlbfs-1.0-16.2.ppc.rpm
- libhugetlbfs-64bit-1.0-16.2.ppc.rpm
With the recommended libraries installed, proceed to the Allocating huge pages section of this article.
- On RHEL 5, there are five rpms to install:
- libhugetlbfs-1.0.1-1.el5.ppc.rpm
- libhugetlbfs-devel-1.0.1-1.el5.ppc.rpm
- libhugetlbfs-devel-1.0.1-1.el5.ppc64.rpm
- libhugetlbfs-lib-1.0.1-1.el5.ppc.rpm
- libhugetlbfs-lib-1.0.1-1.el5.ppc64.rpm
- Alternatively, you can get a copy from SourceForge (see Resources) and build and install that version. I'll explain this approach next.
From SourceForge, click the Download libhugetlbfs button, shown in Figure 1 and follow the instructions to download the tar ball. For this article, Version 1.0.1 level is the one tested and supported by SUSE and Red Hat.
Figure 1. SourceForge libhugetlbfs page
Download the tar ball to your system. The libhugetlbfs
make install process copies the required files to the
appropriate locations on your system. I recommend installing libhugetlbfs in the
/usr subdirectory by specifying
make install PREFIX=/usr, as shown in
Listing 4. You'll need root access to install.
Listing 4. Installing libhugetlbfs
# tar -zxf libhugetlbfs-1.0.1.tar.gz # cd libhugetlbfs-1.0.1 # make ... <---- not showing "make" messages here ... # make install PREFIX=/usr VERSION INSTALL32 /usr/lib INSTALL64 /usr/lib64 OBJSCRIPT ld.hugetlbfs INSTALL
If you look in the
/usr/share/libhugetlbfs/ directory,
you should find
ld, which is the new linker command.
See Listing 5. The
ld command is
soft linked to
ld.hugetlbfs as a convenience for
invoking this linker by the GNU Compiler Collection (GCC) and IBM compilers.
Listing 5. /usr/share/libhugetlbfs/ showing the ld command
# ls -l /usr/share/libhugetlbfs total 8 lrwxrwxrwx 1 root root 12 2006-11-26 12:42 ld -> ld.hugetlbfs -rwxr-xr-x 1 root root 1321 2006-11-26 12:42 ld.hugetlbfs drwxr-xr-x 2 root root 4096 2006-11-26 12:42 ldscripts
ldscripts subdirectory shown in
Listing 6 contains all of the modified linker scripts needed
to handle the "magic" of relinking the
.data, and
.text sections.
Listing 6. ldscripts subdirectory of /usr/share/libhugetlbfs/
/usr/share/libhugetlbfs/ldscripts # ls elf32ppclinux.xB elf64ppc.xB elf_i386.xB elf_x86_64.xB elf32ppclinux.xBDT elf64ppc.xBDT elf_i386.xBDT elf_x86_64.xBDT
The libhugetlbfs package comes with a number of automated test packages that can
be invoked using
make. These tests are primarily used
by the developers of the package and kernel maintainers as changes are made to the
system. If you're running on a supported operating system level and kernel, there
should be no need to run the tests, especially since the output can be cryptic for
general users of the package.
The other important file provided by libhugetlbfs is the
libhugetlbfs.so library, as shown in
Listing 7. This is the library invoked at run time that
controls the system usage of the huge pages. Libraries are provided for both
32-bit applications and 64-bit applications.
Listing 7. libhugetlbfs.so library
# ls -l /usr/lib/libhugetlbfs.so -rwxr-xr-x 1 root root 54785 2006-11-26 12:42 /usr/lib/libhugetlbfs.so # ls -l /usr/lib64/libhugetlbfs.so -rwxr-xr-x 1 root root 63910 2006-11-26 12:42 /usr/lib64/libhugetlbfs.so
To set up your system to use huge pages, you simply allocate huge pages first.
With Linux, you copy (echo) the value of the number of huge pages you'd like to
allocate into a
/proc/sys/vm control, as shown in
Listing 8. The operating system attempts to allocate the
requested huge pages. Allocating means to tuck the pages away and reserve
them out of the physical memory pool. The pages are not yet in use. The system
does not give any indication that it has failed to allocate all of the requested
huge pages. So after you request them, you always need to check how many were
actually reserved.
Listing 8. Allocating huge pages with /proc/sys/vm
# cat /proc/meminfo | grep Huge HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 Hugepagesize: 16384 kB # echo 200 > /proc/sys/vm/nr_hugepages # cat /proc/meminfo | grep Huge HugePages_Total: 200 HugePages_Free: 200 HugePages_Rsvd: 0 Hugepagesize: 16384 kB
libhugetlbfs uses a virtual filesystem interface, the
hugetlbfs. To set this up, create a mount point and
mount the virtual filesystem. The filesystem can be named anything unique and, in
this case, use the mount point
hugetlbfs you defined controls who has access to
the system huge pages, so it is important to set up a group with the users that
you wish to have access to the system huge pages. Note that you create a special
group (
libhuge) on the system to control access to the
hugetlbfs. See Listing 9. You
should add any authorized users to this group, and only these users will be
allowed access to the huge pages used by libhugetlbfs.
Listing 9. Defining hugetlbfs filesystem
# mkdir /libhugetlbfs # groupadd libhuge # chgrp libhuge /libhugetlbfs # chmod 770 /libhugetlbfs # usermod wmb -G libhuge <---- assumes "wmb" is a user on the system # mount -t hugetlbfs hugetlbfs /libhugetlbfs
The Linux operating system uses this special filesystem for access and control of
the physical memory associated with the 16MB huge pages. The name of the file
system you create isn't important and, for normal usage, you should define and use
a single filesystem. Keep in mind the "mount" of the
hugetlbfs is temporary, and it will not be
automatically remounted at boot time unless you change
/etc/fstab. To make the change permanent, edit the file
and add the applicable line, like this:
# vi /etc/fstab
Then add that line to the file, as shown in Listing 10. Note the
gid=1000assumes that the libhuge group ID is
Listing 10. Adding libhugetlbfs mount to /etc/fstab
/dev/sda3 / ext3 acl,user_xattr 1 1 /dev/sda2 swap swap defaults 0 0 proc /proc proc defaults 0 0 sysfs /sys sysfs noauto 0 0 debugfs /sys/kernel/debug debugfs noauto 0 0 devpts /dev/pts devpts mode=0620,gid=5 0 0 /dev/fd0 /media/floppy auto noauto,user,sync 0 0 hugetlbfs /libhugetlbfs hugetlbfs mode=0770,gid=1000 0 0
So at this point, you've completed the basic setup of the libhugetlbfs library. You have done the following:
- Reviewed the considerations for using libhugetlbfs
- Downloaded and installed libhugetlbfs (either from SourceForge or the most current rpm files from your SLES 10 or RHEL 5 distribution)
- Set up libhugetlbfs by creating, mounting, and limiting access to a virtual
- Defined a huge page pool to be used by users
Now you're ready for a user to use the transparent huge pages.
Backing malloc commands with huge pages
Let's start by looking at
malloc, which is the easy
case and requires no special linking. I assume you're running as a user (in this
wmb), who is included in the previously
libhuge group. The mounted libhugetlbfs
filesystem has
libhuge as the group owner, and
wmb belongs to that group. This is shown in
Listing 11.
Listing 11. The libhuge group
wmb@p5sys:~> ls -l -d /libhugetlbfs/ drwxrwx--- 2 root libhuge 0 2006-12-18 21:26 /libhugetlbfs/ wmb@p5sys:~> id uid=1000(wmb) gid=100(users) groups=16(dialout),33(video),100(users),1000(libhuge)
Then use a simple program that copies values from one very big array to another
array. You'll create a program called
which is shown in Listing 12.
Listing 12. copy_arrays.c
#define ELEMENTS 1024*1024*128 static double bss_array_from[ELEMENTS]; static double bss_array_to[ELEMENTS]; static double *malloc_array_from; static double *malloc_array_to; int main() { int i; malloc_array_from = (double *)malloc(ELEMENTS*sizeof(double)); malloc_array_to = (double *)malloc(ELEMENTS*sizeof(double)); /* initialize and touch all of the pages */ for (i = 1; i < ELEMENTS; i++) { bss_array_to[i] = 1.0; bss_array_from[i] = 2.0; malloc_array_to[i] = 3.0; malloc_array_from[i] = 4.0; } /* copy "from" "to" */ for (i = 1; i < ELEMENTS; i++) { bss_array_to[i] = bss_array_from[i]; malloc_array_to[i] = malloc_array_from[i]; } return; }
As root user, allocate 200 huge pages for the system to use. Then open a second
window and issue the
watch command to keep track of the
system usage of huge pages, as follows:
# echo 200 > /proc/sys/vm/nr_hugepages # watch cat /proc/meminfo
As a non-root user (in this case, wmb), you need to compile and run the program, as shown in Listing 13. The number of huge pages being "watched" should not change. Your "times" might be different, depending on the system you are running on.
Listing 13. Running copy_arrays.c
wmb@p5sys:~> cc -O3 -m64 copy_arrays.c -o copy_arrays wmb@p5sys:~> time ./copy_arrays real 0m6.844s user 0m2.149s sys 0m2.649s
To back the
malloc commands with huge pages, set the
HUGETLB_MORECORE environment variable and set the
LD_PRELOAD to the libhugetlbfs library, as shown in
Listing 14.The program execution should take place slightly
faster, and the window where you're watching memory usage should show huge pages
being allocated and used.
Listing 14. Setting HUGETLB_MORECORE with LD_PRELOAD set to libhugetlbfs
wmb@p5sys:~> time HUGETLB_MORECORE=yes LD_PRELOAD=libhugetlbfs.so ./copy_arrays real 0m6.480s user 0m2.483s sys 0m1.645s
Depending on your system and memory configuration, your result might vary but, in this case, the performance should improve by about five percent (or (6.480-6.844)/6.844). While this might seem to be a trivial amount of time, this can add up when very large compute-intensive workloads are run over the course of days.
LD_PRELOAD setting causes any
malloc commands or their derivatives to be
automatically backed by the huge pages allocated earlier.
Malloc commands are handled at run time, so you'll need
to predefine enough 16MB pages to be used by your program.
Backing sections with huge pages
When re-linking your executable to take advantage of backing the
.data, or
.text sections, it's easy to use either the GCC or the
IBM compilers. Both compilers provide easy-to-use parameters to override the
invocation of the
ld command. Here's how to use them:
- GCC compilers: Add the following parameters to the C compile link command
-B /usr/share/libhugetlbfs/ -Wl,--hugetlbfs-link=B
The second parameter is 'dash W ell comma' -- hard to read on most browsers.
- IBM compilers: Do the same thing, but provide additional clarification of
what's being overridden, like this:
-B /usr/share/libhugetlbfs/ -tl -Wl,--hugetlbfs-link=BDT
This adds 'dash tee ell', which directs this directive to the linker. Use this for both C, C++, and Fortran compilers.
So using the
copy_arrays.c program
(Listing 12) and the GCC compilers, tell the linker to put
.bss section into huge pages. Note that in this
case, you need to create a new target executable called
copy_arrays-lp, as shown in
Listing 15, since this executable is linked for huge pages.
You should see a performance gain similar to that of backing the
malloc pages.
Listing 15. copy_arrays-lp executable
wmb@p5sys:~> cc -O3 -m64 -B /usr/share/libhugetlbfs/ -Wl,--hugetlbfs-link=B \ copy_arrays.c -o copy_arrays-lp wmb@p5sys:~> time ./copy_arrays-lp real 0m6.495s user 0m2.558s sys 0m1.648s
What if not enough 16MB pages are available?
You can combine the two, backing both the
.bss section
malloc with huge pages. You'll need more huge pages
than you previously defined.
Note that when you don't have enough huge pages defined, the application is
terminated ("Killed"). As you see in Listing 16, the
invocation of
copy_arrays_lp with
malloc also used will fail due to not having enough
16MB huge pages available. This is fixed by allocating more 16MB huge pages and
then rerunning.
When using an executable linked for the
.bss section,
there is no need to specify the
LD_PRELOAD=libhugetlbfs.so override. You simply specify
that you want to use
malloc as well by defining
Listing 16. Specifying use of malloc with HUGETLB_MORECORE
wmb@p5sys:~> time HUGETLB_MORECORE=yes ./copy_arrays-lp Killed <---- Note the "Killed" message real 0m4.084s user 0m1.669s sys 0m0.365s wmb@p5sys:~> su #> echo 300 > /proc/sys/vm/nr_hugepages #> exit wmb@p5sys:~> time HUGETLB_MORECORE=yes ./copy_arrays-lp real 0m6.943s user 0m3.600s sys 0m0.473s
In this case, using both
malloc and
.bss sections did not result in tangible gains. For
your applications, trying various combinations helps you understand the most
practical approach to use. Not all applications benefit from using transparent
huge pages.
If an unauthorized user tries to use the system huge pages, the program runs
normally, but the libhugetlbfs library returns an error -- huge pages will not be
used. For example, if the user
joe tries to run the
same two programs from above, the result shown in Listing 17
Listing 17. Result of unauthorized user trying to use huge pages
joe@p5sys:~> time HUGETLB_MORECORE=yes ./copy_arrays-lp libhugetlbfs: ERROR: mkstemp() failed: Permission denied real 0m6.795s user 0m2.267s sys 0m2.656s joe@p5sys:~> time HUGETLB_MORECORE=yes LD_PRELOAD=libhugetlbfs.so ./copy_arrays libhugetlbfs: ERROR: mkstemp() failed: Permission denied libhugetlbfs: ERROR: Couldn't open hugetlbfs file for morecore real 0m6.807s user 0m2.133s sys 0m2.660s
Examples of libhugetlbfs in action
The libhugetlbfs library has been put to use in customer production environments, where it has helped to tune workloads across the POWER line and has been used in SPECcpu2000 publishes with SLES 10. More recently, it's been used for a SPECompM2001 publish with the new RHEL 5 version. In addition, a working practical example of how to tune a memory application has been provided on the IBM Linux on POWER wiki (see Resources).
Publishing SPECcpu2000 with SLES 10
To provide working examples of the technology in action, IBM recently published a
number of SPECcpu2000 benchmarks on the SPEC.org Web site (see
Resources) on POWER5+ systems using SLES 10. The
published examples demonstrate how easy it is to invoke and use libhugetlbfs. For
example, on the SPECint2000 runs, the executables are built normally. Then, when
the runs are measured for performance, the
backing of the executables is simply turned on by setting the two applicable
environment variables, as shown in Listing 18.
Listing 18. Running SPECint2000 with malloc commands in 16MB huge pages
# export HUGETLB_MORECORE=yes # export LD_PRELOAD=libhugetlbfs.so # runspec --config LoP_config_file.cfg int
For the SPECcpu2000 Fortran publishes, you need to leverage the common approach
of re-linking the applicable programs to have the executable setup to back the
.data, and
.text sections with 16MB pages. In this case, modify
the link step of the components. In the example
19), I show the changes for the
179.art component, as published on the SPEC.org Web
site (see Resources).
Listing 19. Example of a SPECfp2000 component compile/link flags
179.art=peak=default=default: notes179_1 = 179.art notes179_2 = +FDO -O5 notes179_3 = -B/usr/share/libhugetlbfs/ -tl -Wl,--hugetlbfs-link=BDT PASS1_CFLAGS = -qpdf1 -O5 -B/usr/share/libhugetlbfs/ -tl -Wl,--hugetlbfs-link=BDT PASS1_LDCFLAGS = -qpdf1 -O5 -B/usr/share/libhugetlbfs/ -tl -Wl,--hugetlbfs-link=BDT PASS2_CFLAGS = -qpdf2 -O5 -B/usr/share/libhugetlbfs/ -tl -Wl,--hugetlbfs-link=BDT PASS2_LDCFLAGS = -qpdf2 -O5 -B/usr/share/libhugetlbfs/ -tl -Wl,--hugetlbfs-link=BDT
Then invoke the run, as follows:
# export HUGETLB_MORECORE=yes # runspec --config LoP_config_file.cfg fp
Publishing SPECompM2001 with RHEL 5
Demonstrating that the approach is available and the same using RHEL 5, a recent SPECompM2001 publish was completed on an IBM System p5 560Q system. The result is available on the SPEC.org Web site (see Resources).
Selected components that showed performance gains with
malloc commands being backed by 16MB huge pages were
run with the environment variables set appropriately. See
Listing 20 for an example of how the invocation of one of
the components was modified. It looks easy, right?
Listing 20. Example of SPECompM2001 component using malloc in 16MB pages
316.applu_m: -qpdf1/pdf2 -O4 -q64 ENV_HUGETLB_MORECORE=yes ENV_LD_PRELOAD=libhugetlbfs.so
Another exercise in tuning a memory application (stream) with libhugetlbfs is available on the Web in the IBM Linux on POWER wiki (see Resources).
The example in the wiki shows the practical and common steps a user can take to maximize performance of memory-intensive workloads on a system running Linux.
In this article, you were introduced to an open source community project called
libhugetlbfs, which is now supported on SLES 10 and now in RHEL 5. The library
provides easier transparent access for customer applications to system huge pages.
You learned how to use libhugetlbfs libraries with GCC or the IBM XL C/C++
compilers for Linux. The libhugetlbfs library allows you to leverage the huge
pages for
malloc commands in a program, the
.bss section, or the combination of
.data, and
.text sections of an executable, improving the
performance of the application in some cases. You can easily configure
libhugetlbfs on any system, and access controls are easily included to limit
access to the memory resources.
Particular thanks to Adam Litke (in Rochester, MN), Nishanth Aravamudan (Beaverton, OR), Steve Fox (Rochester, MN), and David Gibson (Australia) for their tireless work and focus on delivering libhugetlbfs to the community as a supported library in 2006. Their work continues into 2007, as they make the library more flexible and robust across system platforms.
Thanks to Chakarat Skawratananond (Austin, TX), a regular contributor to developerWorks, on his help and assistance in working with libhugetlbfs on the performance improvements for customers.
|Download method
|SourceForge libhugetlbfs library
|Trial version of XL C/C++ Advanced Edition V8.01
Information about download methods
- A functional version of the IBM C/C++ compilers for the POWER systems.
- Tuning
stream with libhugetlbfs:
See a working example on the IBM Linux on POWER Wiki site and the common steps an
end user can take to maximize performance on Linux on POWER systems.
- SPEC.org SPECcpu2000 results:
In this section, there are a number of examples of publishes done with
libhugetlbfs. Click on one of the results sections and search for "SLES."
- SUSE for POWER:
Visit the Novell site and get the latest information for SUSE for POWER.
- Red Hat Enterprise Linux
Visit the Red Hat site for more information on Red Hat Enterprise Linux.
- IBM Systems: Want more?
The developerWorks IBM Systems zone hosts hundreds of informative articles and
introductory, intermediate, and advanced tutorials.
- New to IBM Systems?:
Get a better understanding of what skills are necessary to undertake systems
development with a wide range of IBM hardware products and related technologies.
- Safari bookstore:
Visit this e-reference library to find specific technical resources.
Get products and technologies
- IBM trial software:
Build your next development project with software for download directly from
- IBM VisualAge C/C++
Visit the VisualAge C++ page for updated information on the IBM complier.
- Participate in the discussion forum.
- IBM Systems forums:
Exchange information with other developers on the IBM Systems forums.
- Participate in the
developerWorks blogs
and get involved in the developerWorks community.
- Check out
SourceForge and
get involved in the
libhugetlbfs community.
Bill Buros works is a performance analyst in the IBM Linux Technology Center. Based in Austin, Texas, Bill has been focused on performance for compute-intensive applications running on the Linux operating system. He works with customers and software product vendors to improve performance of their products, the Linux operating system, the kernel, and the overall software stack. One of his recent goals has been to get transparent huge pages implemented in the operating system for customers of Linux. You can contact him at email@example.com.

subset: commoncrawl


text:
- Academics
- Admission
- Career + Alumni
- Life at SCAD
- About SCAD
|Sept. 27, 2013-Feb. 2, 2014
SCAD Museum of Art
601 Turner Blvd.
|Add to calendar
Wendell Castle's exploration of form and function blurs the boundaries between art, craft and design and has changed the way we look at furniture today.
The first major investigation into his iconic and groundbreaking early work in more than 20 years, this exhibition surveys the renowned American designer's wood and fiberglass objects, and presents related materials from his archives.
The handmade pieces created by Wendell Castle in Rochester, New York, helped shape the American studio furniture movement throughout the 1960s and 1970s, and he remains one of the most important American furniture makers working today.
"Wandering Forms" includes a variety of furniture pieces from chairs and tables to lighting and the intricate drawings from Castle's archives.
This exhibition originated at The Aldrich Contemporary Art Museum to coincide with Castle's 80th birthday and was organized by curator Evan Snyderman and Aldrich executive director Alyson Baker. It was designed by Cooper Joseph Studio.
Public dialogue between Wendell Castle and Alastair Gordon: Friday, Jan. 24, 5 p.m. with reception immediately following
Museum hours:
The exhibition, public dialogue and reception are free for all SCAD students, faculty, staff and museum members. Open to the public with the cost of museum admission.


text:
Tag: caress
The iPad rent-a-date
You can go tickle an iPad for free at any Apple Store. You can caress, stroke, and otherwise test out the "magical" touch-based interface. However, if you want to go further, second base for example, be prepared to pony up $50. TUAW has realized that for that low, low price, you can bring that ba...
Subscribe to Newsletter
Software Updatesmore updates
- Vizzywig 8xHD price tag now a very affordable $49.99
- Automatic targets teen drivers with License+ service
- Dropbox adds support for TouchID
- YouTube for iOS gets updated with full support for iPhone 6 and 6 Plus
- iOS 8.0.1 update now available (Updated -- Don't update!)
- NFL Mobile updated for 2014 Season with new Fantasy Football features, NFL Now integration


text:
Updated: March 20, 2013 6:32AM
"Windy City Live" (9 a.m., Channel 7): Actor Jeff Perry.
"Live With Kelly and Michael" (9 a.m., Channel 9): Actor Hugh Jackman; actress Jennifer Lawrence. (R)
"The View" (10 a.m., Channel 7): Guest co-host Gilles Marini; actress Laura Dern; actor Jason Clarke. (R)
"The Talk" (1 p.m., Channel 2): Guest co-host Howie Mandel; actress Marcia Gay Harden; actress Naya Rivera.
"Anderson Live" (1 p.m., Channel 32): Guest co-hosts Nicole "Snooki" Polizzi and Jenni "JWoww" Farley; actor Matthew Rhys.
"Steve Harvey" (2 p.m., Channel 5): TV host Jenny McCarthy. (R)
"The Ellen DeGeneres Show" (3 p.m., Channel 5): Actress Keira Knightley; music group One Direction. (R)
"Katie" (3 p.m., Channel 7): "Admission" stars Tina Fey and Paul Rudd.
"The Daily Show With Jon Stewart" (10 p.m., Comedy Central): Journalist Steven Brill. (R)
"Conan" (10 p.m., TBS): Filmmaker Mel Brooks; comedian Kristen Schaal. (R)
"The Colbert Report" (10:30 p.m., Comedy Central): Actor James Franco. (R)
"Late Show With David Letterman" (10:35 p.m., Channel 2): Actress Eva Mendes; comedian Andy Hendrickson; music group the Airborne Toxic Event.
"The Tonight Show With Jay Leno" (10:35 p.m., Channel 5): Actress Vanessa Hudgens; actor Chris O'Dowd; musician Gary Clark Jr.
"Jimmy Kimmel Live" (10:35 p.m., Channel 7): Actress Halle Berry; actress Elle Fanning; reality TV star Sean Lowe; music group RDGLDGRN.
"Late Late Show With Craig Ferguson" (11:35 p.m., Channel 2): Actor Aaron Eckhart; musician Kellie Pickler.
"Late Night With Jimmy Fallon" (11:35 p.m., Channel 5): Former New York Mayor Rudy Giuliani; filmmaker Judd Apatow; chef Marcus Samuelsson.


text:
Despite 80º temperatures, Lohan stays bundled up in a scarf, boots and fur. Plus: Ashlee Simpson, Eva Longoria and more
Credit: Marc Serota/Reuters/Landov
Published: Wednesday Jan 03, 2007 | 05:00 PM EST
More from PEOPLE
See More News
6 of 17
American Idol winner Taylor Hicks shares the stage with soul singer Gladys Knight at the Orange Bowl halftime show in Miami on Tuesday. The pair swapped vocals on the classic "I Heard It Through the Grapevine," after Hicks kicked off the show with his latest single, "The Runaround."
Copyright © 2014 Time Inc. All rights reserved. Reproduction in whole or in part without permission is prohibited.


text:
November 26, 2014
Dec. 19, 2013
The newest members of the Albemarle County Board of Supervisors have now been sworn in.
Liz Palmer, Brad Sheffield, and Diantha McKeel all took their oaths of office on Thursday afternoon.
They join Jane Dittmar on the board, which the democrats now control for the first time since 2011.
"The next few months will be dominated by budget discussions," says Sheffield. "We have some real hefty capital investment projects that are coming forward, and I think really the first on the agenda is really to figure out where we're going to be making investments at this time."
New members of the Albemarle County School Board were also sworn in at the event.
Click Here to access the online Public Inspection File
Viewers with disabilities can get assistance accessing this station's FCC Public Inspection File by contacting the station with the information listed below. Questions or concerns relating to the accessibility of the FCC's online public file system should be directed to the FCC at 888-225-5322, 888-835-5322 (TTY), or email@example.com.


text:
Flood Defenses Ready for Winter
After the exceptional rainfall and storms of last winter, the Environment Agency has completed a record number of repairs to flood and coastal defenses across Devon and Cornwall and is urging communities to make sure ...read more →
Maidens Harbour Dredging Announced
The dredging operations designed to increase draft at the Maidens Harbour and planned for early 2015, have been ...read more →
KDM Marine: Move into Asia Pacific Region
Leading subsea excavation specialist KDM Marine International is set to develop its business within the Asia ...read more →
Lagersmit – New Name for IHC Sealing Solutions
Starting in December 2014, IHC Sealing Solutions will operate under the new, but also old and trusted, name of ...read more →
VIDEO: Waterking 250 NG at Work
Waterking, a market leader in Western Europe in the production of amphibious excavators and accessories, has ...read more →
Van Oord Acquires Ballast Nedam Offshore
Van Oord, a Dutch contracting company that specializes in dredging and land reclamation, has reached agreement on ...read more →
Chichester Bar Dredging Begins
The long-awaited dredging of the Chichester Bar is about to start today. Dredging operations will take place from ...read more →
Picture of the Day: Dredging at Port of Koper
Van Oord, a Dutch contracting company that specializes in dredging and land reclamation, recently completed the ...read more →
NSW Officials to Discuss Coastal Erosion
Coffs Harbor City Council has agreed to forward a Draft Coastal Hazard Planning Proposal to the NSW Department of ...read more →
CRP: Funding Round Successfully Completed
Chatham Rock Phosphate, a mineral exploration company focused on the development and exploration of a marine ...read more →
'Strength from the Depths' Published
The British Marine Aggregate Producers Association (BMAPA) has published its eighth annual Sustainable Development ...read more →
ORC to Present Upper Clutha Report
Results of the modelling research report on the possible effects of flooding and erosion hazards in the Upper ...read more →
Amsterdam Says 'Yes' to New Lock in IJmuiden
The City Council of Amsterdam yesterday said 'yes' to the accelerated and expanded construction of the ...read more →
Dredging at Port Hughes Set for December
The Port Hughes Boat Ramp dredging program will be undertaken from the 8th-12th December 2014, according ...read more →
Update on the Kari Hege Dredging Operations
For week commencing 1st December 2014, the "Kari Hege" will be engaged in dredging operations in the access channel ...read more →
Leicester Flood Risk Project on Right Track
The Environment Agency and Leicester City Council are working together to design and build a scheme which will ...read more →
Copenhagen Hosts AquaConSoil 2015
The 13th International AquaConSoil Conference will take place on 9-12 June, 2015, in Copenhagen, Denmark. This ...read more →
VIDEO: Clacton to Holland-on-Sea Coastal Scheme
Significant progress has been made over the first few months on a £36 million scheme to improve coastal defenses ...read more →
Rosebud Dredging Scheme About to Begin
Maintenance dredging works at the Rosebud Motor Boat Squadron Mooring Basin area will start in the next few days, ...read more →


text:
Written by | Tuesday, November 26th, 1996
New Zealand has been rated the world's most free economy by The Economist due to reforms initiated by the Labour government. The old Crown departments have been split into their policy, regulatory, service-delivery and commercial functions. The government has also become the first to adopt the same kind of rigorous accounting standards that are demanded of commercial firms – every new policy must be subjected to long range and analysis of its costs and impact. Having seen New Zealand as the world's laboratory for public sector reform, there is much we could learn from the Kiwi effect.
Download PDF
23 Great Smith Street, London SW1P 3BL United KingdomTelephone: 020 7222 4995 Media enquiries: 07584 778 207


text:
5 New Website Vulnerabilities Straight from Black Hat & DEF CON
However, there is a lot of insecurity in that ethereal land we call cyberspace Mass Injectors. Mass Scanners. Yes, it's time to once again take a dive into the off-grid world of Black Hat and DEF CON, the information security and hacking conferences.


text:
Skip to content
Main Navigation: Current Page: /eksuccessbrands/ | /creative/
Search the site
Additional Site Resources
Site 'Breadcrumb' Location (Navigation)
Whether you are new to crafting, a seasoned expert or just want to try something new, let our brands inspire you. Find step by step instructions for all the projects in our project gallery, or learn about the members of our Creative Artist Team (CAT) and what inspires them. Want some extra tips on how to use a tool or perfect a technique, browse through the latest how-to videos. From scrapbooking, paper crafting and stamping, to jewelry making, kids' crafts and needle and paint crafts, our products can inspire you to Dream. Make. Celebrate.
Project IdeasWe are adding new projects all the time! Learn more.
VideosWatching a video makes learning so much easier! Learn more.
You are now leaving the site.
View All EK Success Brands


text:
WordPress Performance Improvements That Can Go Wrong
- By Hristo Pandjarov
- March 21st, 2014
- 27 Comments
If you've searched recently for tips on optimizing WordPress' performance, then you have definitely come across various techniques that people recommend.
These include all sorts of caching mechanisms, such as reverse proxies, object caching and cache plugins, CSS minification, using sprites for images, and so on. All of them are viable and effective ways to speed up a WordPress website's performance. However, be careful when implementing any of these techniques, and always test their effect on your particular website.Read more...


text:
Hit us up and let us know if you find prices cheaper than ours and we'll match them. Please remember that the free shipping promotion is only for Evolve products. It's kind of hard for us to keep up with stock of colors on site, so color substitutions are definitely possible at times. We try our best to let you know before hand though. Contact us with any questions you might have. Thanks
Spray Paint
004 offers an array of great brands for every need.
Sort By:
Evolve Paint
GRAFFITI: The art form as we know it today was born in NYC, USA. It has spread like a disease, ca..
Belton Molotow Premium
Low pressure, great coverage, no drips, easy to control, won't fade. Covers on any surface: wood,..
Evolve Remover
Now you never have to worry about messing up your fresh kicks or clothing when wanting to paint s..
Montana BLACK 150ml
Montana BLACK spray paint now available as 150ml. perfect for fast painting and layering optimize..
Montana BLACK 400ml
EFFICIENCY, QUALITY & RELIABILITY Montana BLACK is a high-pressure Nitro-Combination based ..
Montana Black Extended 600ml
The New BLACK 600ml High-Pressure can is the extended version of the new 400ml BLACKline range. ..
Montana GOLD 400ml
THE PERFECT TOOL FOR CREATIVE WORK Montana GOLD is the perfect tool for all artists and creativ..
Add to Cart for Price
Montana Night Glow
Montana NIGHTGLOW is a high-grade acrylic quality which contains luminescence-pigments, that stor..
Montana SPIDER 150ml
Create your own spider-web like effects with the Montana Spider's high pressure out put. Availabl..
Montana TARBLACK 500ml
The Montana Tarblack 500ml Low Pressure. Bitumen based Tarblack. It comes equipped with the Fat c..
Montana TARBLACK 600ml
The Montana TARBLACK 600ml High pressure for fast application. This can comes equipped with a Gol..
Montana Ultra Wide 750ml
What can we say about this, absolutely crazy! Comes with an amazing calligraphy ultra wide fat ca..
Montana WHITE 400ml
GERMAN MADE HIGH QUALITY SPRAY PAINT The new and improved Montana WHITE featuring 51 high cov..
Spanish Montana MTN 94 Spray Paint 400ml / 13.5 fluid ounces. Synthetic Enamel, Matt/Fl..
MTN Alien
250ml can. Rarely does a product comes along which breaks the art scene. In 2005, Montana Colors ..
MTN Hardcore 2
Spanish Montana Hardcore version 2. Spray Paint 400ml / 13.5 fluid ounces. Synthetic Enamel, Glos..
MTN Hardcore Original
Classic formula only available in the US. Universal valve system, high pressure, ..
MTN Krink K-750
MTN united with Krink to make this ultra slick bombing can. Flat finish, high pressure and comes ..
MTN Limited Edition Alien Wutang
Extremely rare can now available only on our site. Must have for any collector. ..
MTN Limited Edition CHAZ
CHAZ Limited Edition 400ml This is the Montana Hardcore Limited Edition Can by CHAZ. Th..
MTN Limited Edition Cope2
MTN collaborated with the Bronx Don, King COPE2 to create a small run of Limited Edition COPE2 ca..
MTN Limited Edition SEN2
SEN2 Limited Edition 400ml SEN2 "Medium Blue" Limited Edition 400ml. This is the Montana Hard..
MTN Maximo
The Montana Maximo is the largest Spray Paint can available! High Pressure - 750ml in size. Avail..
MTN Mega 600ml
Montana Mega spray paint 600ml / 20.3 fluid ounces. High pressue valve. Great bombing can. Comes ..
MTN Micro
Standing at just two inches tall, the Micro can from Montana Colors packs a big impact in such a ..
MTN Nitro 2G 400ml
These are the MTN (Montana) Nitro 2G 400ml Color Spray Paint Cans. The Montana 2G cans were devel..
MTN Nitro 2G 500ml
These are the MTN (Montana) Nitro 2G 500ml Color Spray Paint Cans. The Montana 2G cans were devel..
MTN Pocket 150ml
Montana Pocket spray paint 150ml/ 5 fluid ounces. Low pressue valve. Come with fat cap, grea..
Spanish Montana TNT Spray Paint 400ml / 13.5 fluid ounces. Synthetic Enamel, Matte Finish, Variab..
Showing 1 to 31 of 31 (1 Pages)


text:
1-10 of 43 properties for sale found
2 bed flat for sale
£57,500 Fixed Price
Fixed Price £57,500
1 bedroom flat for sale 27 Angle Gate, Glasgow, G14 9LR
Second Floor Retirement Flat in purpose built development enjoying tree lined aspects to Victoria Park, a short walk Dumbarton Road, Scotstoun Leisure Centre. Reception hall with two cupboards, near 18' x near 14' L shaped corner situated lounge/dining room, bedroom with fitted wardrobes, (cont.... More details ›
£59,000 Offers Over
Offers Over £59,000
1 bedroom flat for sale Angle Gate,Jordanhill,Glasgow,G14
A well maintained main door upper cottage retirement home set within an impressive development situated at the corner of Danes Drive and Westland Drive. Comprises hall, lounge with open plan dining area, fitted kitchen, double size bedroom and shower room. Electric heating. More details ›
£62,000 Guide Price*
Guide Price* £62,000
1 bedroom flat for sale Mitre Court,Glasgow,G11
Modern retirement flat on preferred first floor. To be sold by Private Treaty - therefore open to offers. More details ›
£65,000 Offers Over
Offers Over £65,000
1 bedroom retirement property for sale Cluny Gardens, Glasgow, G14
This one bedroom upper flat is located with a very desirable area of Jordanhill and forms part of the Cluny Gardens retirement development and is part of a warden monitored development which is managed by Hanover Housing Association. More details ›
£65,000 Offers Over
Offers Over £65,000
1 bedroom retirement property for sale Mitre Road, Broomhill, Glasgow, G11
Beautifully presented "just decorated" with new floor coverings, Main Door First Floor Retirement Flat in small development just off Crow Road. South facing bay window lounge, large double bedroom (fitted wardrobes), breakfasting kitchen, tiled bathroom, large box room/store. EH. DG. Parking EPC - C More details ›
£74,995 Offers Over
Offers Over £74,995
1 bedroom flat for sale Abbey Drive, Glasgow, G14
*PRICED TO SELL*This one bed retirement flat is located within the much sought after McCarthy Stone development in Jordanhill, with great transport links and local amenities. The property comprises of; lounge/dining room, kitchen, double bedroom with wardrobes, bathroom with adapted bat More details ›
£75,000 Offers Over
Offers Over £75,000
1 bedroom flat for sale Abbey Drive, Glasgow, G14
This One Bed RETIREMENT FLAT is located within the much sought after purpose built McCarthy & Stone Strathmore Court development, in Jordanhill. The property is conveniently placed for local amenities such as Crow Road with a range of shops and restaurants. More details ›
£79,000 Offers Over
Offers Over £79,000
1 bedroom retirement property for sale Mitre Court, Broomhill, Glasgow
Located in this favoured Broomhill district of Glasgow's West End and at the end of a small secluded cul-de-sac is this ground floor retirement apartment with warden assistance. (contd...) More details ›
£79,995 Offers Over
Offers Over £79,995
1 bedroom retirement property for sale MITRE COURT, Glasgow, G11
Seldom available this one bed retirement flat is located within a much sought after development in Broomhill and within walking distance to local amenities and great transport links via bus and rail. Mitre Court is a retirement property and buyers must be aged 60 or over or 50 if disabled. More details ›
£85,000 Fixed Price
Fixed Price £85,000
1 bedroom flat for sale Abbey Drive, Jordanhill, Glasgow
Modern luxury first floor retirement flat. S/entry, lift, lounge, kitchen, bedroom, shower room, electric heating, double glazing, residents' parking. Quality development.EER - BAND B More details ›
Thank you.
Your information has been sent to 0 out of 17 agents who have property to sell in the area you specified.
*Guide Price: An indication of a seller's minimum expectation at auction and given as a Guide Price or a range of Guide Prices. This is not necessarily the figure a property will sell for and is subject to change prior to the auction.
Reserve Price: Each auction property will be subject to a Reserve Price below which the property cannot be sold at auction. Normally the Reserve Price will be set within the range of Guide Prices or no more than 10% above a single Guide Price.


text:
Complementary Relationships: Study of the Color Wheel - Part 2
Posted by Shayla Simmons — 26 Dec 2012
Purple and yellow are the focus colors of this second installment of three on complementary colors. There are so many ways to bring out the dynamic in the subject in a photograph. One of these ways is to pay particular attention to color and its impact in the photo. Purple and yellow are across from each other on the color wheel, making them complementary colors that present the shooter with infinite possibilities. Yellow and purple can be found everywhere, with particular abundance in nature.
Song of Flower by Belinda Grace
smoking tulip by Silviu Bondari
Bumble Bee Macadam by Stacey Debono
underneath by Nicole E.
Autumn Canopy by Christopher Boswell
Dirty Laundry by Cristie Schrader
Yellow and Purple Daisies by Jeff Lynch
Lotus Flower III by Lauren Coakley
wet. by Courtney Scalzo
Whether photographed separately or together, purple and yellow are great colors to capture - with vivid impact in your images. Take a page from nature and capture some amazing yellow/purple complements or grab your favorite photo(s) of these colors from your files. Upload them to the site and share your links in the comments below. If you have some time, browse all the amazing examples on JPG and create a collection and then share your collection link below.
Can't wait to see what you bring!
Be sure to check out Part 1, where we take a look at red and green!
UPDATE: Part 3 is also now up - check out blue and orange!
Happy Holidays Continue! ;)